diff options
author | Yunlian Jiang <yunlian@google.com> | 2013-05-22 16:23:28 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-05-23 11:08:47 -0700 |
commit | 837e07a6a2f455a4699bf4ad1b28653fde3ca3b0 (patch) | |
tree | 2f9a6dc0f3e3dae465cd8e8614b0ab67190d2a7d /crosperf/machine_manager.py | |
parent | 4578ec10ee49f6341cc840c5ea41b1899af4caff (diff) | |
download | toolchain-utils-837e07a6a2f455a4699bf4ad1b28653fde3ca3b0.tar.gz |
crosperf: keep alive if one machine is down.
Originally, crosperf dies if any of machine in the machine list is
unreachable, this patch just ignore the unreachable machine.
BUG=None
TEST=crosperf a simple testcase passes.
Change-Id: I835b484f5378215da142d5e8e64471ce744aea30
Reviewed-on: https://gerrit-int.chromium.org/38475
Reviewed-by: Luis Lozano <llozano@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@google.com>
Tested-by: Yunlian Jiang <yunlian@google.com>
Diffstat (limited to 'crosperf/machine_manager.py')
-rw-r--r-- | crosperf/machine_manager.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/crosperf/machine_manager.py b/crosperf/machine_manager.py index 11b9f72e..1155327d 100644 --- a/crosperf/machine_manager.py +++ b/crosperf/machine_manager.py @@ -32,6 +32,9 @@ class CrosMachine(object): self.released_time = time.time() self.autotest_run = None self.chromeos_root = chromeos_root + if not self._IsReachable(): + self.machine_checksum = None + return self._GetMemoryInfo() self._GetCPUInfo() self._ComputeMachineChecksumString() @@ -39,6 +42,16 @@ class CrosMachine(object): self.machine_checksum = self._GetMD5Checksum(self.checksum_string) self.machine_id_checksum = self._GetMD5Checksum(self.machine_id) + def _IsReachable(self): + ce = command_executer.GetCommandExecuter() + command = "ls" + ret = ce.CrosRunCommand(command, + machine=self.name, + chromeos_root=self.chromeos_root) + if ret: + return False + return True + def _ParseMemoryInfo(self): line = self.meminfo.splitlines()[0] usable_kbytes = int(line.split()[1]) @@ -226,9 +239,8 @@ class MachineManager(object): for m in self._all_machines: assert m.name != machine_name, "Tried to double-add %s" % machine_name cm = CrosMachine(machine_name, self.chromeos_root) - assert cm.machine_checksum, ("Could not find checksum for machine %s" % - machine_name) - self._all_machines.append(cm) + if cm.machine_checksum: + self._all_machines.append(cm) def AreAllMachineSame(self, label): checksums = [m.machine_checksum for m in self.GetMachines(label)] |