import utils
from TestUser import TestUser
+from TestBox import TestBox
class TestNode:
return TestNode.is_real_model (self.node_spec['node_fields']['model'])
def host_box (self):
- try:
- return self.node_spec['host_box']
- except:
- return 'localhost'
+ if self.is_real ():
+ utils.header("WARNING : real nodes dont have a host box")
+ return None
+ else:
+ try:
+ return self.node_spec['host_box']
+ except:
+ utils.header("WARNING : qemu nodes need a host box")
+ return 'localhost'
def create_node (self):
ownername = self.node_spec['owner']
self.test_plc.run_in_host("ssh root@%s ~/%s/%s/env-qemu start"%(host_box, path, dest_dir ))
self.test_plc.run_in_host("ssh root@%s DISPLAY=%s ~/%s/start-qemu-node %s & "%( host_box, display, dest_dir, dest_dir))
- def stop_qemu(self,node_spec):
- try:
- if self.is_qemu_model(node_spec['node_fields']['model']):
- hostname=node_spec['node_fields']['hostname']
- host_box=node_spec['host_box']
- self.test_plc.run_in_host('ssh root@%s killall qemu'%host_box)
- utils.header('Stoping qemu emulation of %s on the host machine %s and Restoring the initial network'
- %(hostname,host_box))
- self.test_plc.run_in_host("ssh root@%s ~/qemu-%s/env-qemu stop "%(host_box, hostname ))
- return True
- except Exception,e :
- print str(e)
- return False
+ def kill_qemu (self):
+ hostname = self.name()
+ # kill the right processes
+ command="kill $(ps $(pgrep qemu) | grep %s | awk '{print $1;}')"%hostname
+ utils.header("Stopping qemu for host %s on box %s"%(hostname,self.host_box()))
+ TestBox(self.host_box()).run(command)
+ return True