factory_VPD: Allow assigning individual task to run.
When overriding VPD values, or when designing factory flow, it is possible that
partner want to hard-code fixed VPD values (ex, region), and still able to input
volatile values (ex, serial number).
To support that, add a new "task_list" param to specify which task to perform.
BUG=none
TEST=Manually verified factory_VPD in factory UI.
Change-Id: I6e40f977c0e456654a93871a4f6181c3c5296e7f
Reviewed-on: https://gerrit.chromium.org/gerrit/23613
Reviewed-by: Jon Salz <jsalz@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
diff --git a/client/site_tests/factory_VPD/factory_VPD.py b/client/site_tests/factory_VPD/factory_VPD.py
index 9196a4f..040343f 100644
--- a/client/site_tests/factory_VPD/factory_VPD.py
+++ b/client/site_tests/factory_VPD/factory_VPD.py
@@ -78,7 +78,11 @@
class factory_VPD(test.test):
version = 5
- def run_once(self, override_vpd=None):
+ SERIAL_TASK_NAME = 'serial'
+ REGION_TASK_NAME = 'region'
+
+ def run_once(self, override_vpd=None,
+ task_list=[SERIAL_TASK_NAME, REGION_TASK_NAME]):
factory.log('%s run_once' % self.__class__)
self.tasks = []
self.vpd = override_vpd or {'ro': {}, 'rw': {}}
@@ -87,8 +91,10 @@
if shopfloor.is_enabled():
self.tasks += [ShopFloorVpdTask(self.vpd)]
else:
- self.tasks += [serial_task.SerialNumberTask(self.vpd),
- region_task.SelectRegionTask(self.vpd)]
+ if self.SERIAL_TASK_NAME in task_list:
+ self.tasks += [serial_task.SerialNumberTask(self.vpd)]
+ if self.REGION_TASK_NAME in task_list:
+ self.tasks += [region_task.SelectRegionTask(self.vpd)]
self.tasks += [WriteVpdTask(self.vpd)]
task.run_factory_tasks(self.job, self.tasks)