Classify methods in FAFTClient
There are too many methods in FAFTClient, so this CL is to classify them into
several groups: ec, bios, kernel. Methods which can be put into one of the
target group should be renamed with format _[group name]_[method name].
For example, dump_firmware should be modified to bios_dump. To call methods in
FAFTClient, use [group name].[method name].
BUG=chromium-os:36429
TEST=run firmware update tests
Change-Id: I7ead01246121b454c0a9f29e10bd026a77925e4f
Reviewed-on: https://gerrit.chromium.org/gerrit/38186
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Commit-Ready: Chun-Ting Chang <ctchang@chromium.org>
Tested-by: Chun-Ting Chang <ctchang@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index 5047477..1519eeb 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -157,9 +157,9 @@
use_faft)
if use_faft:
self.client_attr = FAFTClientAttribute(
- self.faft_client.get_platform_name())
+ self.faft_client.system.get_platform_name())
self.delay = FAFTDelayConstants(
- self.faft_client.get_platform_name())
+ self.faft_client.system.get_platform_name())
self.checkers = FAFTCheckers(self, self.faft_client)
if self.client_attr.chrome_ec:
@@ -213,9 +213,9 @@
This info is used by generate_test_report and local_dash later.
"""
self.write_attr_keyval({
- 'fw_version': self.faft_client.get_EC_version(),
- 'hwid': self.faft_client.get_crossystem_value('hwid'),
- 'fwid': self.faft_client.get_crossystem_value('fwid'),
+ 'fw_version': self.faft_client.ec.get_version(),
+ 'hwid': self.faft_client.system.get_crossystem_value('hwid'),
+ 'fwid': self.faft_client.system.get_crossystem_value('fwid'),
})
@@ -244,7 +244,7 @@
try:
self.wait_for_client(install_deps=True)
- lines = self.faft_client.run_shell_command_get_output(
+ lines = self.faft_client.system.run_shell_command_get_output(
'crossystem recovery_reason')
recovery_reason = int(lines[0])
logging.info('Got the recovery reason %d.', recovery_reason)
@@ -290,7 +290,7 @@
# DUT may be broken by a corrupted OS image. Restore OS image.
self._ensure_client_in_recovery()
logging.info('Try restore the OS image...')
- self.faft_client.run_shell_command('chromeos-install --yes')
+ self.faft_client.system.run_shell_command('chromeos-install --yes')
self.sync_and_warm_reboot()
self.wait_for_client_offline()
self.wait_dev_screen_and_ctrl_d()
@@ -455,7 +455,8 @@
Returns:
A string of the server address.
"""
- r = self.faft_client.run_shell_command_get_output("echo $SSH_CLIENT")
+ r = self.faft_client.system.run_shell_command_get_output(
+ "echo $SSH_CLIENT")
return r[0].split()[0]
@@ -554,7 +555,8 @@
'state_checker': (self.checkers.crossystem_checker, {
'mainfw_type': ('developer', 'normal'),
}),
- 'userspace_action': self.faft_client.request_recovery_boot,
+ 'userspace_action': (
+ self.faft_client.system.request_recovery_boot),
'firmware_action': self.wait_fw_screen_and_plug_usb,
'install_deps_after_boot': True,
},
@@ -563,7 +565,7 @@
'mainfw_type': 'recovery',
'recovery_reason' : vboot.RECOVERY_REASON['US_TEST'],
}),
- 'userspace_action': (self.faft_client.run_shell_command,
+ 'userspace_action': (self.faft_client.system.run_shell_command,
install_cmd),
'reboot_action': self.cold_reboot,
'install_deps_after_boot': True,
@@ -593,15 +595,15 @@
clear_mask: A mask of flags to be cleared.
set_mask: A mask of flags to be set.
"""
- gbb_flags = self.faft_client.get_gbb_flags()
+ gbb_flags = self.faft_client.system.get_gbb_flags()
new_flags = gbb_flags & ctypes.c_uint32(~clear_mask).value | set_mask
if (gbb_flags != new_flags):
logging.info('Change the GBB flags from 0x%x to 0x%x.',
gbb_flags, new_flags)
- self.faft_client.run_shell_command(
+ self.faft_client.system.run_shell_command(
'/usr/share/vboot/bin/set_gbb_flags.sh 0x%x' % new_flags)
- self.faft_client.reload_firmware()
+ self.faft_client.bios.reload()
# If changing FORCE_DEV_SWITCH_ON flag, reboot to get a clear state
if ((gbb_flags ^ new_flags) & vboot.GBB_FLAG_FORCE_DEV_SWITCH_ON):
self.run_faft_step({
@@ -680,15 +682,15 @@
from_part: A string of partition number to be copied from.
to_part: A string of partition number to be copied to.
"""
- root_dev = self.faft_client.get_root_dev()
+ root_dev = self.faft_client.system.get_root_dev()
logging.info('Copying kernel from %s to %s. Please wait...',
from_part, to_part)
- self.faft_client.run_shell_command('dd if=%s of=%s bs=4M' %
+ self.faft_client.system.run_shell_command('dd if=%s of=%s bs=4M' %
(self._join_part(root_dev, self.KERNEL_MAP[from_part]),
self._join_part(root_dev, self.KERNEL_MAP[to_part])))
logging.info('Copying rootfs from %s to %s. Please wait...',
from_part, to_part)
- self.faft_client.run_shell_command('dd if=%s of=%s bs=4M' %
+ self.faft_client.system.run_shell_command('dd if=%s of=%s bs=4M' %
(self._join_part(root_dev, self.ROOTFS_MAP[from_part]),
self._join_part(root_dev, self.ROOTFS_MAP[to_part])))
@@ -703,7 +705,7 @@
part: A string of kernel partition number or 'a'/'b'.
"""
if not self.checkers.root_part_checker(part):
- if self.faft_client.diff_kernel_a_b():
+ if self.faft_client.kernel.diff_a_b():
self.copy_kernel_and_rootfs(
from_part=self.OTHER_KERNEL_MAP[part],
to_part=part)
@@ -747,7 +749,7 @@
if self.client_attr.chrome_ec:
self.set_chrome_ec_write_protect_and_reboot(enable)
else:
- self.faft_client.set_EC_write_protect(enable)
+ self.faft_client.ec.set_write_protect(enable)
self.sync_and_warm_reboot()
@@ -943,7 +945,7 @@
logging.info(
'Firmware is not booted with tried_fwb. Reboot into it.')
self.run_faft_step({
- 'userspace_action': self.faft_client.set_try_fw_b,
+ 'userspace_action': self.faft_client.system.set_try_fw_b,
})
else:
if not self.checkers.crossystem_checker({'tried_fwb': '0'}):
@@ -994,7 +996,7 @@
self.enable_keyboard_dev_mode()
else:
self.servo.enable_development_mode()
- self.faft_client.run_shell_command(
+ self.faft_client.system.run_shell_command(
'chromeos-firmwareupdate --mode todev && reboot')
@@ -1004,7 +1006,7 @@
self.disable_keyboard_dev_mode()
else:
self.servo.disable_development_mode()
- self.faft_client.run_shell_command(
+ self.faft_client.system.run_shell_command(
'chromeos-firmwareupdate --mode tonormal && reboot')
@@ -1067,7 +1069,7 @@
logging.info('System is not in dev mode. Reboot into it.')
self.run_faft_step({
'userspace_action': None if self.client_attr.keyboard_dev
- else (self.faft_client.run_shell_command,
+ else (self.faft_client.system.run_shell_command,
'chromeos-firmwareupdate --mode todev && reboot'),
'reboot_action': self.enable_keyboard_dev_mode if
self.client_attr.keyboard_dev else None,
@@ -1082,7 +1084,7 @@
logging.info('System is not in normal mode. Reboot into it.')
self.run_faft_step({
'userspace_action': None if self.client_attr.keyboard_dev
- else (self.faft_client.run_shell_command,
+ else (self.faft_client.system.run_shell_command,
'chromeos-firmwareupdate --mode tonormal && reboot'),
'reboot_action': self.disable_keyboard_dev_mode if
self.client_attr.keyboard_dev else None,
@@ -1099,7 +1101,7 @@
part: A string of kernel partition number or 'a'/'b'.
"""
self.ensure_kernel_boot(part)
- if self.faft_client.diff_kernel_a_b():
+ if self.faft_client.kernel.diff_a_b():
self.copy_kernel_and_rootfs(from_part=part,
to_part=self.OTHER_KERNEL_MAP[part])
self.reset_and_prioritize_kernel(part)
@@ -1113,17 +1115,17 @@
Args:
part: A string of partition number to be prioritized.
"""
- root_dev = self.faft_client.get_root_dev()
+ root_dev = self.faft_client.system.get_root_dev()
# Reset kernel A and B to bootable.
- self.faft_client.run_shell_command('cgpt add -i%s -P1 -S1 -T0 %s' %
- (self.KERNEL_MAP['a'], root_dev))
- self.faft_client.run_shell_command('cgpt add -i%s -P1 -S1 -T0 %s' %
- (self.KERNEL_MAP['b'], root_dev))
+ self.faft_client.system.run_shell_command(
+ 'cgpt add -i%s -P1 -S1 -T0 %s' % (self.KERNEL_MAP['a'], root_dev))
+ self.faft_client.system.run_shell_command(
+ 'cgpt add -i%s -P1 -S1 -T0 %s' % (self.KERNEL_MAP['b'], root_dev))
# Set kernel part highest priority.
- self.faft_client.run_shell_command('cgpt prioritize -i%s %s' %
+ self.faft_client.system.run_shell_command('cgpt prioritize -i%s %s' %
(self.KERNEL_MAP[part], root_dev))
# Safer to sync and wait until the cgpt status written to the disk.
- self.faft_client.run_shell_command('sync')
+ self.faft_client.system.run_shell_command('sync')
time.sleep(self.delay.sync)
@@ -1160,7 +1162,7 @@
This is the default reboot action on FAFT.
"""
- self.faft_client.run_shell_command('sync')
+ self.faft_client.system.run_shell_command('sync')
time.sleep(self.delay.sync)
self.warm_reboot()
@@ -1170,7 +1172,7 @@
This reboot action is used to reset EC for recovery mode.
"""
- self.faft_client.run_shell_command('sync')
+ self.faft_client.system.run_shell_command('sync')
time.sleep(self.delay.sync)
self.cold_reboot()
@@ -1184,7 +1186,7 @@
default: EC soft reboot;
'hard': EC cold/hard reboot.
"""
- self.faft_client.run_shell_command('sync')
+ self.faft_client.system.run_shell_command('sync')
time.sleep(self.delay.sync)
self.ec.reboot(flags)
time.sleep(self.delay.ec_reboot_cmd)
@@ -1461,10 +1463,10 @@
Current firmware sha follows the order (
vblock_a_sha, body_a_sha, vblock_b_sha, body_b_sha)
"""
- current_firmware_sha = (self.faft_client.get_firmware_sig_sha('a'),
- self.faft_client.get_firmware_sha('a'),
- self.faft_client.get_firmware_sig_sha('b'),
- self.faft_client.get_firmware_sha('b'))
+ current_firmware_sha = (self.faft_client.bios.get_sig_sha('a'),
+ self.faft_client.bios.get_body_sha('a'),
+ self.faft_client.bios.get_sig_sha('b'),
+ self.faft_client.bios.get_body_sha('b'))
return current_firmware_sha
@@ -1475,7 +1477,7 @@
True if it is changed, otherwise Flase.
"""
# Device may not be rebooted after test.
- self.faft_client.reload_firmware()
+ self.faft_client.bios.reload()
current_sha = self.get_current_firmware_sha()
@@ -1500,8 +1502,8 @@
Args:
suffix: a string appended to backup file name
"""
- remote_temp_dir = self.faft_client.create_temp_dir()
- self.faft_client.dump_firmware(os.path.join(remote_temp_dir, 'bios'))
+ remote_temp_dir = self.faft_client.system.create_temp_dir()
+ self.faft_client.bios.dump_whole(os.path.join(remote_temp_dir, 'bios'))
self._client.get_file(os.path.join(remote_temp_dir, 'bios'),
os.path.join(self.resultsdir, 'bios' + suffix))
@@ -1537,11 +1539,12 @@
self.backup_firmware(suffix='.corrupt')
# Restore firmware.
- remote_temp_dir = self.faft_client.create_temp_dir()
+ remote_temp_dir = self.faft_client.system.create_temp_dir()
self._client.send_file(os.path.join(self.resultsdir, 'bios' + suffix),
os.path.join(remote_temp_dir, 'bios'))
- self.faft_client.write_firmware(os.path.join(remote_temp_dir, 'bios'))
+ self.faft_client.bios.write_whole(
+ os.path.join(remote_temp_dir, 'bios'))
self.sync_and_warm_reboot()
self.wait_for_client_offline()
self.wait_dev_screen_and_ctrl_d()
@@ -1572,7 +1575,8 @@
if is_shellball:
logging.info('Device will update firmware with shellball %s',
shellball)
- temp_dir = self.faft_client.create_temp_dir('shellball_')
+ temp_dir = self.faft_client.system.create_temp_dir(
+ 'shellball_')
temp_shellball = os.path.join(temp_dir, 'updater.sh')
self._client.send_file(shellball, temp_shellball)
updater_path = temp_shellball