6
import xen.xend.XendOptions
8
xen.xend.XendOptions.XendOptions.config_default = '/dev/null'
11
from xen.util import auxbin
14
class test_create(unittest.TestCase):
16
def assertEqualModuloNulls_(self, a, b):
17
for k, v in a.iteritems():
19
self.failUnless(k in b, '%s not in b' % k)
20
self.assertEqual(v, b[k])
22
self.assert_(k not in b or not b[k], '%s in b' % k)
25
def assertEqualModuloNulls(self, a, b):
26
self.assertEqualModuloNulls_(a, b)
27
self.assertEqualModuloNulls_(b, a)
30
def t(self, args, expected):
31
self.assertEqualModuloNulls(
32
xen.xm.create.parseCommandLine(args.split(' '))[0].vals.__dict__,
36
def testCommandLine(self):
37
(fd, fname) = tempfile.mkstemp()
39
self.t('-f %s kernel=/mykernel display=fakedisplay '
40
'macaddr=ab:cd:ef:ed' % fname,
41
{ 'name' : os.path.basename(fname),
44
'kernel' : '/mykernel',
45
'display' : 'fakedisplay',
46
'macaddr' : 'ab:cd:ef:ed',
52
'path' : '.:' + auxbin.xen_configdir(),
56
'xauthority': xen.xm.create.get_xauthority(),
60
def testConfigFile(self):
61
(fd, fname) = tempfile.mkstemp()
65
kernel = "/boot/vmlinuz-xenU-smp"
69
disk = ['phy:/dev/virt-blkdev-backend/dom1,sda1,w',
70
'phy:/dev/virt-blkdev-backend/usr,sda2,r']
72
extra = " profile=1 GATEWAY=192.0.2.254 NETMASK=255.255.255.0 IPADDR=192.0.2.1 HOSTNAME=dom1"
73
on_poweroff = 'destroy'
80
self.t('-f %s display=fakedisplay' % fname,
81
{ 'kernel' : '/boot/vmlinuz-xenU-smp',
86
'root' : '/dev/sda1 ro',
87
'extra' : ' profile=1 GATEWAY=192.0.2.254 NETMASK=255.255.255.0 IPADDR=192.0.2.1 HOSTNAME=dom1',
88
'on_poweroff' : 'destroy',
89
'on_reboot' : 'destroy',
90
'on_crash' : 'destroy',
91
'disk' : [['phy:/dev/virt-blkdev-backend/dom1',
93
['phy:/dev/virt-blkdev-backend/usr',
98
'display' : 'fakedisplay',
102
'interface' : 'eth0',
103
'path' : '.:' + auxbin.xen_configdir(),
107
'xauthority' : xen.xm.create.get_xauthority(),
111
def testConfigFileAndCommandLine(self):
112
(fd, fname) = tempfile.mkstemp()
126
self.t('-f %s display=fakedisplay macaddr=ab:cd:ef:ed' %
128
{ 'name' : 'testname',
131
'kernel' : '/mykernel',
132
'display' : 'fakedisplay',
133
'macaddr' : 'ab:cd:ef:ed',
141
'interface' : 'eth0',
142
'path' : '.:' + auxbin.xen_configdir(),
147
'xauthority' : xen.xm.create.get_xauthority(),
151
def testHVMConfigFile(self):
152
(fd, fname) = tempfile.mkstemp()
159
name = "ExampleHVMDomain"
161
vif = [ 'type=ioemu, bridge=xenbr0' ]
162
disk = [ 'file:/var/images/min-el3-i386.img,ioemu:hda,w' ]
163
device_model = 'qemu-dm'
172
self.t('-f %s display=fakedisplay' % fname,
173
{ 'kernel' : 'hvmloader',
176
'name' : 'ExampleHVMDomain',
179
'vif' : ['type=ioemu, bridge=xenbr0'],
180
'disk' : [['file:/var/images/min-el3-i386.img',
181
'ioemu:hda', 'w', None]],
182
'device_model': 'qemu-dm',
184
'extra' : ('VNC_VIEWER=%s:%d ' %
185
(xen.xm.create.get_host_addr(),
186
xen.xm.create.VNC_BASE_PORT +
187
xen.xm.create.choose_vnc_display())),
194
'display' : 'fakedisplay',
198
'interface' : 'eth0',
199
'path' : '.:' + auxbin.xen_configdir(),
201
'xauthority' : xen.xm.create.get_xauthority(),
206
return unittest.makeSuite(test_create)