1 # Thierry Parmentelat <thierry.parmentelat@inria.fr>
2 # Copyright (C) 2010 INRIA
4 # this models a box that hosts qemu nodes
5 # could probably also be used for boxes that host plc instances
8 from TestSsh import TestSsh
10 # Apriol 2013 - using /vservers/ for hosting this stuff as well, making IT-like stuff easier
13 # xxx this should probably inherit TestSsh
16 def __init__(self,hostname,buildname,key=None):
17 self.hostname_value=hostname
18 self.buildname=buildname
20 self.test_ssh=TestSsh(self.hostname_value,self.buildname,self.key,root=KVMROOT)
23 return self.hostname_value
26 return self.test_ssh.is_local()
28 def run_in_buildname (self,command,background=False, dry_run=False):
29 message="On {}: running {}".format(self.hostname(), command)
30 if background: message += " &"
32 return self.test_ssh.run_in_buildname (command,background, dry_run)
34 # xxx could/should use rsync instead
35 def copy (self,local_file,recursive=False,dry_run=False):
36 return self.test_ssh.copy (local_file,recursive,dry_run=dry_run)
38 def rmdir (self,dirname, dry_run=False):
39 return self.test_ssh.rmdir(dirname, dry_run=dry_run)
41 def mkdir (self,dirname):
42 return self.test_ssh.mkdir(dirname)
44 # we need at least one nodename, as template-qemu is not synced on remote testboxes
45 def qemu_kill_all(self,nodedir):
46 self.run_in_buildname("{}/qemu-kill-node".format(nodedir))
49 def qemu_list_all(self):
50 self.run_in_buildname("template-qemu/qemu-kill-node -l")