faft: Move stop and start daemon methods to faft client
Move these methods to faft client as RPCs.
BUG=None
TEST=Ran a FAFT test.
Change-Id: I91ff3aed3d93ae987b2ae4d0eefdd74866148ad1
Reviewed-on: https://chromium-review.googlesource.com/783880
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
diff --git a/client/cros/faft/rpc_functions.py b/client/cros/faft/rpc_functions.py
index 1b41f06..b139551 100755
--- a/client/cros/faft/rpc_functions.py
+++ b/client/cros/faft/rpc_functions.py
@@ -707,6 +707,14 @@
def _updater_cleanup(self):
self._updater.cleanup_temp_dir()
+ def _updater_stop_daemon(self):
+ """Stop update-engine daemon."""
+ return self._updater.stop_daemon()
+
+ def _updater_start_daemon(self):
+ """Start update-engine daemon."""
+ return self._updater.start_daemon()
+
def _updater_get_fwid(self):
"""Retrieve shellball's fwid.
diff --git a/client/cros/faft/utils/firmware_updater.py b/client/cros/faft/utils/firmware_updater.py
index ee2c757..4fc058f 100644
--- a/client/cros/faft/utils/firmware_updater.py
+++ b/client/cros/faft/utils/firmware_updater.py
@@ -22,6 +22,7 @@
put shellball under /var/tmp/faft/autest with name chromeos-firmwareupdate.
"""
+ DAEMON = 'update-engine'
CBFSTOOL = 'cbfstool'
HEXDUMP = 'hexdump -v -e \'1/1 "0x%02x\\n"\''
SIGNER = '/usr/share/vboot/bin/make_dev_firmware.sh'
@@ -70,6 +71,18 @@
if self.os_if.is_dir(self._temp_path):
self.os_if.remove_dir(self._temp_path)
+ def stop_daemon(self):
+ """Stop update-engine daemon."""
+ self.os_if.log('Stopping %s...' % self.DAEMON)
+ cmd = 'status %s | grep stop || stop %s' % (self.DAEMON, self.DAEMON)
+ self.os_if.run_shell_command(cmd)
+
+ def start_daemon(self):
+ """Start update-engine daemon."""
+ self.os_if.log('Starting %s...' % self.DAEMON)
+ cmd = 'status %s | grep start || start %s' % (self.DAEMON, self.DAEMON)
+ self.os_if.run_shell_command(cmd)
+
def retrieve_fwid(self):
"""Retrieve shellball's fwid.
diff --git a/server/cros/faft/firmware_test.py b/server/cros/faft/firmware_test.py
index 411f47a..57de2df 100644
--- a/server/cros/faft/firmware_test.py
+++ b/server/cros/faft/firmware_test.py
@@ -165,7 +165,7 @@
logging.info('mainfw_act is B. rebooting to set it A')
self.switcher.mode_aware_reboot()
self._setup_gbb_flags()
- self._stop_service('update-engine')
+ self.faft_client.updater.stop_daemon()
self._create_faft_lockfile()
self._setup_ec_write_protect(ec_wp)
# See chromium:239034 regarding needing this sync.
@@ -185,7 +185,7 @@
self.switcher.restore_mode()
self._restore_ec_write_protect()
self._restore_gbb_flags()
- self._start_service('update-engine')
+ self.faft_client.updater.start_daemon()
self._remove_faft_lockfile()
self._record_servo_log()
self._record_faft_client_log()
@@ -458,24 +458,6 @@
command = 'rm -f %s' % (self.lockfile)
self.faft_client.system.run_shell_command(command)
- def _stop_service(self, service):
- """Stops a upstart service on the client.
-
- @param service: The name of the upstart service.
- """
- logging.info('Stopping %s...', service)
- command = 'status %s | grep stop || stop %s' % (service, service)
- self.faft_client.system.run_shell_command(command)
-
- def _start_service(self, service):
- """Starts a upstart service on the client.
-
- @param service: The name of the upstart service.
- """
- logging.info('Starting %s...', service)
- command = 'status %s | grep start || start %s' % (service, service)
- self.faft_client.system.run_shell_command(command)
-
def clear_set_gbb_flags(self, clear_mask, set_mask):
"""Clear and set the GBB flags in the current flashrom.
diff --git a/server/cros/faft/utils/mode_switcher.py b/server/cros/faft/utils/mode_switcher.py
index 21161e8..03f17eb 100644
--- a/server/cros/faft/utils/mode_switcher.py
+++ b/server/cros/faft/utils/mode_switcher.py
@@ -609,7 +609,7 @@
# Check the FAFT client is avaiable.
self.faft_client.system.is_available()
# Stop update-engine as it may change firmware/kernel.
- self.faft_framework._stop_service('update-engine')
+ self.faft_framework.faft_client.updater.stop_daemon()
else:
logging.error('wait_for_client() timed out.')
raise ConnectionError('DUT is still down unexpectedly')