aboutsummaryrefslogtreecommitdiff
path: root/crosperf/machine_manager.py
diff options
context:
space:
mode:
authorYunlian Jiang <yunlian@google.com>2013-05-22 16:23:28 -0700
committerChromeBot <chrome-bot@google.com>2013-05-23 11:08:47 -0700
commit837e07a6a2f455a4699bf4ad1b28653fde3ca3b0 (patch)
tree2f9a6dc0f3e3dae465cd8e8614b0ab67190d2a7d /crosperf/machine_manager.py
parent4578ec10ee49f6341cc840c5ea41b1899af4caff (diff)
downloadtoolchain-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.py18
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)]