define PLC_MAIL_FROM_ADDRESS
[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 # Apriol 2013 - using /vservers/ for hosting this stuff as well, making IT-like stuff easier
11 KVMROOT="/vservers"
12
13 # xxx this should probably inherit TestSsh
14 class TestBoxQemu:
15
16     def __init__(self,hostname,buildname,key=None):
17         self.hostname_value=hostname
18         self.buildname=buildname
19         self.key=key
20         self.test_ssh=TestSsh(self.hostname_value,self.buildname,self.key,root=KVMROOT)
21         
22     def hostname (self):
23         return self.hostname_value
24
25     def is_local(self):
26         return self.test_ssh.is_local()
27     
28     def run_in_buildname (self,command,background=False, dry_run=False):
29         message="On {}: running {}".format(self.hostname(), command)
30         if background: message += " &"
31         utils.header(message)
32         return self.test_ssh.run_in_buildname (command,background, dry_run)
33
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)
37
38     def rmdir (self,dirname, dry_run=False):
39         return self.test_ssh.rmdir(dirname, dry_run=dry_run)
40
41     def mkdir (self,dirname):
42         return self.test_ssh.mkdir(dirname)
43
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))
47         return True
48
49     def qemu_list_all(self):
50         self.run_in_buildname("template-qemu/qemu-kill-node -l")
51         return True
52