2
# This program is free software; you can redistribute it and/or modify
3
# it under the terms of the GNU General Public License as published by
4
# the Free Software Foundation; either version 2 of the License, or
5
# (at your option) any later version.
7
# This program is distributed in the hope that it will be useful,
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
# GNU General Public License for more details.
12
# You should have received a copy of the GNU General Public License
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
import urlgrabber.progress as progress
24
class TestXMLConfig(unittest.TestCase):
26
def _compare(self, xenguest, filebase, install):
27
f = open("tests/" + filebase + ".xml", "r")
28
expectXML = string.join(f.readlines(), "")
31
xenguest._prepare_install(progress.BaseMeter())
33
actualXML = xenguest.get_config_xml(install=install)
35
if os.environ.has_key("DEBUG_TESTS") and os.environ["DEBUG_TESTS"] == "1" and actualXML != expectXML:
36
print "Expect: %d bytes '%s'" % (len(expectXML), expectXML)
37
print "Actual: %d bytes '%s'" % (len(actualXML), actualXML)
39
self.assertEqual(actualXML, expectXML)
41
xenguest._installer.cleanup()
43
def _get_basic_paravirt_guest(self):
44
conn = libvirt.openReadOnly("test:///default")
45
g = virtinst.ParaVirtGuest(connection=conn, type="xen")
48
g.maxmemory = int(400)
49
g.uuid = "12345678-1234-1234-1234-123456789012"
50
g.boot = ["/boot/vmlinuz","/boot/initrd"]
51
g.graphics = (True, "vnc", None, "ja")
55
def _get_basic_fullyvirt_guest(self):
56
conn = libvirt.openReadOnly("test:///default")
57
g = virtinst.FullVirtGuest(connection=conn, type="xen",
58
emulator="/usr/lib/xen/bin/qemu-dm")
61
g.maxmemory = int(400)
62
g.uuid = "12345678-1234-1234-1234-123456789012"
63
g.cdrom = "/dev/loop0"
64
g.set_os_type("other")
65
g.set_os_variant("generic")
66
g.graphics = (True, "sdl")
71
def testBootParavirtDiskFile(self):
72
g = self._get_basic_paravirt_guest()
73
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
74
self._compare(g, "boot-paravirt-disk-file", False)
76
def testBootParavirtDiskBlock(self):
77
g = self._get_basic_paravirt_guest()
78
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
79
self._compare(g, "boot-paravirt-disk-block", False)
81
def testBootParavirtDiskDrvPhy(self):
82
g = self._get_basic_paravirt_guest()
83
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK, \
84
driverName = virtinst.VirtualDisk.DRIVER_PHY))
85
self._compare(g, "boot-paravirt-disk-drv-phy", False)
87
def testBootParavirtDiskDrvFile(self):
88
g = self._get_basic_paravirt_guest()
89
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
90
driverName = virtinst.VirtualDisk.DRIVER_FILE,size=5))
91
self._compare(g, "boot-paravirt-disk-drv-file", False)
93
def testBootParavirtDiskDrvTap(self):
94
g = self._get_basic_paravirt_guest()
95
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
96
driverName = virtinst.VirtualDisk.DRIVER_TAP,size=5))
97
self._compare(g, "boot-paravirt-disk-drv-tap", False)
99
def testBootParavirtDiskDrvTapQCow(self):
100
g = self._get_basic_paravirt_guest()
101
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
102
driverName = virtinst.VirtualDisk.DRIVER_TAP, \
103
driverType = virtinst.VirtualDisk.DRIVER_TAP_QCOW,size=5))
104
self._compare(g, "boot-paravirt-disk-drv-tap-qcow", False)
106
def testBootParavirtManyDisks(self):
107
g = self._get_basic_paravirt_guest()
108
g.disks.append(virtinst.VirtualDisk("/etc/test1.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
109
g.disks.append(virtinst.VirtualDisk("/etc/test2.img", type=virtinst.VirtualDisk.TYPE_FILE, \
110
driverName = virtinst.VirtualDisk.DRIVER_TAP, \
111
driverType = virtinst.VirtualDisk.DRIVER_TAP_QCOW,size=5))
112
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
113
self._compare(g, "boot-paravirt-many-disks", False)
115
def testBootFullyvirtDiskFile(self):
116
g = self._get_basic_fullyvirt_guest()
117
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
118
self._compare(g, "boot-fullyvirt-disk-file", False)
120
def testBootFullyvirtDiskBlock(self):
121
g = self._get_basic_fullyvirt_guest()
122
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
123
self._compare(g, "boot-fullyvirt-disk-block", False)
128
def testInstallParavirtDiskFile(self):
129
g = self._get_basic_paravirt_guest()
130
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
131
self._compare(g, "install-paravirt-disk-file", True)
133
def testInstallParavirtDiskBlock(self):
134
g = self._get_basic_paravirt_guest()
135
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
136
self._compare(g, "install-paravirt-disk-block", True)
138
def testInstallParavirtDiskDrvPhy(self):
139
g = self._get_basic_paravirt_guest()
140
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK, \
141
driverName = virtinst.VirtualDisk.DRIVER_PHY))
142
self._compare(g, "install-paravirt-disk-drv-phy", True)
144
def testInstallParavirtDiskDrvFile(self):
145
g = self._get_basic_paravirt_guest()
146
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
147
driverName = virtinst.VirtualDisk.DRIVER_FILE,size=5))
148
self._compare(g, "install-paravirt-disk-drv-file", True)
150
def testInstallParavirtDiskDrvTap(self):
151
g = self._get_basic_paravirt_guest()
152
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
153
driverName = virtinst.VirtualDisk.DRIVER_TAP,size=5))
154
self._compare(g, "install-paravirt-disk-drv-tap", True)
156
def testInstallParavirtDiskDrvTapQCow(self):
157
g = self._get_basic_paravirt_guest()
158
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE, \
159
driverName = virtinst.VirtualDisk.DRIVER_TAP, \
160
driverType = virtinst.VirtualDisk.DRIVER_TAP_QCOW,size=5))
161
self._compare(g, "install-paravirt-disk-drv-tap-qcow", True)
163
def testInstallParavirtManyDisks(self):
164
g = self._get_basic_paravirt_guest()
165
g.disks.append(virtinst.VirtualDisk("/etc/test1.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
166
g.disks.append(virtinst.VirtualDisk("/etc/test2.img", type=virtinst.VirtualDisk.TYPE_FILE, \
167
driverName = virtinst.VirtualDisk.DRIVER_TAP, \
168
driverType = virtinst.VirtualDisk.DRIVER_TAP_QCOW,size=5))
169
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
170
self._compare(g, "install-paravirt-many-disks", True)
172
def testInstallFullyvirtDiskFile(self):
173
g = self._get_basic_fullyvirt_guest()
174
g.disks.append(virtinst.VirtualDisk("/etc/test.img", type=virtinst.VirtualDisk.TYPE_FILE,size=5))
175
self._compare(g, "install-fullyvirt-disk-file", True)
177
def testInstallFullyvirtDiskBlock(self):
178
g = self._get_basic_fullyvirt_guest()
179
g.disks.append(virtinst.VirtualDisk("/dev/loop0", type=virtinst.VirtualDisk.TYPE_BLOCK))
180
self._compare(g, "install-fullyvirt-disk-block", True)
184
if __name__ == "__main__":