e2527e729faaf245534844515cd4db96dbdbd592
[tests.git] / system / TestBoxQemu.py
1 # Thierry Parmentelat <thierry.parmentelat@inria.fr>
2 # Copyright (C) 2010 INRIA 
3 #
4 # this models a box that hosts qemu nodes
5 # could probably also be used for boxes that host plc instances
6 import os.path
7 import utils
8 from TestSsh import TestSsh
9
10 # xxx this should probably inherit TestSsh
11 class TestBoxQemu:
12
13     def __init__(self,hostname,buildname,key=None):
14         self.hostname_value=hostname
15         self.buildname=buildname
16         self.key=key
17         self.test_ssh=TestSsh(self.hostname_value,self.buildname,self.key)
18         
19     def hostname (self):
20         return self.hostname_value
21
22     def is_local(self):
23         return self.test_ssh.is_local()
24     
25     def run_in_buildname (self,command,background=False):
26         message="On %s: running %s"%(self.hostname(),command)
27         if background: message += " &"
28         utils.header(message)
29         return self.test_ssh.run_in_buildname (command,background)
30
31     # xxx could/should use rsync instead
32     def copy (self,local_file,recursive=False):
33         return self.test_ssh.copy (local_file,recursive)
34
35     def clean_dir (self,dirname):
36         return self.test_ssh.clean_dir(dirname)
37
38     def mkdir (self,dirname):
39         return self.test_ssh.mkdir(dirname)
40
41     # we need at least one nodename, as template-qemu is not synced on remote testboxes
42     def qemu_kill_all(self,nodedir):
43         self.run_in_buildname("%s/qemu-kill-node"%nodedir)
44         return True
45
46     def qemu_list_all(self):
47         self.run_in_buildname("template-qemu/qemu-kill-node -l")
48         return True
49