FAFT: Ignore the failure of getting boot id and move its call location

On some device, it failed to read the boot id file. Ignore this failure
tempoarily in order not to block the test. And also move its call location
to before the userspace_action as some userspace_action does reboot.

BUG=chrome-os-partner:19185
TEST=run firmware_ConsecutiveBoot passed.

Change-Id: I09af66f0398bfecd5ebbd44e24b47d664affb02a
Reviewed-on: https://gerrit.chromium.org/gerrit/50025
Reviewed-by: Vic Yang <victoryang@chromium.org>
Commit-Queue: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index 15b4a69..60085cf 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -1465,11 +1465,16 @@
         if test['state_checker']:
             self._call_action(test['state_checker'], check_status=True)
 
+        boot_id = None
+        try:
+          boot_id = self._client.get_boot_id()
+        except error.AutoservRunError:
+          logging.warning('Failed to get boot id.')
+
         self._call_action(test['userspace_action'])
 
         # Don't run reboot_action and firmware_action if no_reboot is True.
         if not no_reboot:
-            boot_id = self._client.get_boot_id()
             self._call_action(test['reboot_action'])
             self.wait_for_client_offline(orig_boot_id=boot_id)
             self._call_action(test['firmware_action'])
diff --git a/server/cros/servo_test.py b/server/cros/servo_test.py
index 6592635..d482279 100644
--- a/server/cros/servo_test.py
+++ b/server/cros/servo_test.py
@@ -184,7 +184,7 @@
         self._launch_client()
         logging.info('Server: Relaunched remote %s.', 'faft')
 
-    def wait_for_client_offline(self, timeout=60, orig_boot_id=''):
+    def wait_for_client_offline(self, timeout=60, orig_boot_id=None):
         """Wait for the client to come offline.
 
         @param timeout: Time in seconds to wait the client to come offline.