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:
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())