X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FTestNode.py;h=dcab9ddc6d24e7b7814bbefac8466e8473aa2c12;hb=daa6101bf7c504d89de2eb6bbd06821e2f550539;hp=9447fd6741453f5a8c29a10702a7a675390516cd;hpb=84cbc06c6dc3bdf05df4985984c2633357979cde;p=tests.git diff --git a/system/TestNode.py b/system/TestNode.py index 9447fd6..dcab9dd 100644 --- a/system/TestNode.py +++ b/system/TestNode.py @@ -7,6 +7,24 @@ import utils from TestUser import TestUser from TestBoxQemu import TestBoxQemu from TestSsh import TestSsh +from Completer import CompleterTask + +class CompleterTaskNodeSsh (CompleterTask): + def __init__ (self, hostname, qemuname, local_key, command=None,boot_state="boot", expected=True, dry_run=False): + self.hostname=hostname + self.qemuname=qemuname + self.boot_state=boot_state + self.local_key=local_key + self.command=command if command is not None else "hostname;uname -a" + self.expected=expected + self.dry_run = dry_run + def run (self, silent): + command = TestSsh (self.hostname,key=self.local_key).actual_command(self.command) + retcod=utils.system (command, silent=silent, dry_run=self.dry_run) + if self.expected: return retcod==0 + else: return retcod !=0 + def failure_message (self): + return "Cannot reach %s @ %s in %s mode"%(self.hostname, self.qemuname, self.boot_state) class TestNode: @@ -201,6 +219,12 @@ class TestNode: file.close() return True + def qemu_clean (self): + utils.header("Cleaning up qemu for host %s on box %s"%(self.name(),self.test_box().hostname())) + dry_run=self.dry_run() + self.test_box().rmdir(self.nodedir(), dry_run=dry_run) + return True + def qemu_export (self): "all nodes: push local node-dep directory on the qemu box" # if relevant, push the qemu area onto the host box @@ -208,7 +232,6 @@ class TestNode: return True dry_run=self.dry_run() utils.header ("Cleaning any former sequel of %s on %s"%(self.name(),self.host_box())) - self.test_box().rmdir(self.nodedir(), dry_run=dry_run) utils.header ("Transferring configuration files for node %s onto %s"%(self.name(),self.host_box())) return self.test_box().copy(self.nodedir(),recursive=True,dry_run=dry_run)==0 @@ -222,7 +245,7 @@ class TestNode: utils.header("TestNode.qemu_start : %s model %s taken as real node"%(self.name(),model)) return True - def timestamp_qemu (self): + def qemu_timestamp (self): "all nodes: start the qemu instance (also runs qemu-bridge-init start)" test_box = self.test_box() test_box.run_in_buildname("mkdir -p %s"%self.nodedir(), dry_run=self.dry_run()) @@ -244,12 +267,6 @@ class TestNode: self.test_box().run_in_buildname(command, dry_run=self.dry_run()) return True - def clean_qemu (self): - utils.header("Cleaning up qemu for host %s on box %s"%(self.name(),self.test_box().hostname())) - command="rm -rf %s"%(self.nodedir()) - self.test_box().run_in_buildname(command, dry_run=self.dry_run()) - return True - def kill_qemu (self): #Prepare the log file before killing the nodes test_box = self.test_box() @@ -309,7 +326,7 @@ class TestNode: return test_ssh.run ("rpm -q --quiet libvirt-client")==0 def _check_system_slice (self, slicename,dry_run=False): - sitename=self.test_plc.plc_spec['PLC_SLICE_PREFIX'] + sitename=self.test_plc.plc_spec['settings']['PLC_SLICE_PREFIX'] vservername="%s_%s"%(sitename,slicename) test_ssh=self.create_test_ssh() if self.has_libvirt():