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
+ self.test_ssh = TestSsh (self.hostname,key=self.local_key)
+ def run (self, silent):
+ command = self.test_ssh.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_epilogue (self):
+ print "Cannot reach %s in %s mode"%(self.hostname, self.boot_state)
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
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
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())
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()
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():