root / test / ganeti.ovf_unittest.py @ 1e6fab60
History | View | Annotate | Download (17.3 kB)
1 |
#!/usr/bin/python
|
---|---|
2 |
#
|
3 |
|
4 |
# Copyright (C) 2011 Google Inc.
|
5 |
#
|
6 |
# This program is free software; you can redistribute it and/or modify
|
7 |
# it under the terms of the GNU General Public License as published by
|
8 |
# the Free Software Foundation; either version 2 of the License, or
|
9 |
# (at your option) any later version.
|
10 |
#
|
11 |
# This program is distributed in the hope that it will be useful, but
|
12 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 |
# General Public License for more details.
|
15 |
#
|
16 |
# You should have received a copy of the GNU General Public License
|
17 |
# along with this program; if not, write to the Free Software
|
18 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
19 |
# 02110-1301, USA.
|
20 |
|
21 |
|
22 |
"""Script for testing ganeti.ovf.
|
23 |
|
24 |
"""
|
25 |
|
26 |
import optparse |
27 |
import os |
28 |
import os.path |
29 |
import re |
30 |
import shutil |
31 |
import sys |
32 |
import tempfile |
33 |
import unittest |
34 |
|
35 |
from ganeti import constants |
36 |
from ganeti import errors |
37 |
from ganeti import ovf |
38 |
from ganeti import utils |
39 |
|
40 |
import testutils |
41 |
|
42 |
OUTPUT_DIR = "newdir"
|
43 |
|
44 |
GANETI_DISKS = { |
45 |
"disk_count": "1", |
46 |
"disk0_dump": "new_disk.raw", |
47 |
"disk0_size": "0", |
48 |
"disk0_ivname": "disk/0", |
49 |
} |
50 |
GANETI_NETWORKS = { |
51 |
"nic_count": "1", |
52 |
"nic0_mode": "bridged", |
53 |
"nic0_ip": "none", |
54 |
"nic0_mac": "aa:00:00:d8:2c:1e", |
55 |
"nic0_link": "xen-br0", |
56 |
} |
57 |
GANETI_HYPERVISOR = { |
58 |
"hypervisor_name": "xen-pvm", |
59 |
"root-path": "/dev/sda", |
60 |
"kernel_args": "ro", |
61 |
} |
62 |
GANETI_OS = {"os_name": "lenny-image"} |
63 |
GANETI_BACKEND = { |
64 |
"vcpus": "1", |
65 |
"memory" : "2048", |
66 |
"auto_balance": "False", |
67 |
} |
68 |
GANETI_NAME = "ganeti-test-xen"
|
69 |
GANETI_TEMPLATE = "plain"
|
70 |
GANETI_TAGS = None
|
71 |
GANETI_VERSION = "0"
|
72 |
|
73 |
VIRTUALBOX_DISKS = { |
74 |
"disk_count": "2", |
75 |
"disk0_ivname": "disk/0", |
76 |
"disk0_dump": "new_disk.raw", |
77 |
"disk0_size": "0", |
78 |
"disk1_ivname": "disk/1", |
79 |
"disk1_dump": "second_disk.raw", |
80 |
"disk1_size": "0", |
81 |
} |
82 |
VIRTUALBOX_NETWORKS = { |
83 |
"nic_count": "1", |
84 |
"nic0_mode": "bridged", |
85 |
"nic0_ip": "none", |
86 |
"nic0_link": "auto", |
87 |
"nic0_mac": "auto", |
88 |
} |
89 |
VIRTUALBOX_HYPERVISOR = {"hypervisor_name": "auto"} |
90 |
VIRTUALBOX_OS = {"os_name": None} |
91 |
VIRTUALBOX_BACKEND = { |
92 |
"vcpus": "1", |
93 |
"memory" : "2048", |
94 |
"auto_balance": "auto", |
95 |
} |
96 |
VIRTUALBOX_NAME = None
|
97 |
VIRTUALBOX_TEMPLATE = None
|
98 |
VIRTUALBOX_TAGS = None
|
99 |
VIRTUALBOX_VERSION = None
|
100 |
|
101 |
EMPTY_DISKS = {} |
102 |
EMPTY_NETWORKS = {} |
103 |
EMPTY_HYPERVISOR = {"hypervisor_name": "auto"} |
104 |
EMPTY_OS = {} |
105 |
EMPTY_BACKEND = { |
106 |
"vcpus": "auto", |
107 |
"memory" : "auto", |
108 |
"auto_balance": "auto", |
109 |
} |
110 |
EMPTY_NAME = None
|
111 |
EMPTY_TEMPLATE = None
|
112 |
EMPTY_TAGS = None
|
113 |
EMPTY_VERSION = None
|
114 |
|
115 |
CMDARGS_DISKS = { |
116 |
"disk_count": "1", |
117 |
"disk0_ivname": "disk/0", |
118 |
"disk0_dump": "disk0.raw", |
119 |
"disk0_size": "8", |
120 |
} |
121 |
CMDARGS_NETWORKS = { |
122 |
"nic0_link": "auto", |
123 |
"nic0_mode": "bridged", |
124 |
"nic0_ip": "none", |
125 |
"nic0_mac": "auto", |
126 |
"nic_count": "1", |
127 |
} |
128 |
CMDARGS_HYPERVISOR = { |
129 |
"hypervisor_name": "xen-pvm" |
130 |
} |
131 |
CMDARGS_OS = {"os_name": "lenny-image"} |
132 |
CMDARGS_BACKEND = { |
133 |
"auto_balance": False, |
134 |
"vcpus": "1", |
135 |
"memory": "256", |
136 |
} |
137 |
CMDARGS_NAME = "test-instance"
|
138 |
CMDARGS_TEMPLATE = "plain"
|
139 |
CMDARGS_TAGS = "test-tag-1,test-tag-2"
|
140 |
|
141 |
ARGS_EMPTY = { |
142 |
"output_dir": None, |
143 |
"nics": [],
|
144 |
"disks": [],
|
145 |
"name": "test-instance", |
146 |
} |
147 |
ARGS_EXPORT_DIR = dict(ARGS_EMPTY, **{
|
148 |
"output_dir": OUTPUT_DIR,
|
149 |
"name": None, |
150 |
"hypervisor": None, |
151 |
"os": None, |
152 |
"beparams": {},
|
153 |
"no_nics": False, |
154 |
"disk_template": None, |
155 |
"tags": None, |
156 |
}) |
157 |
ARGS_VBOX = dict(ARGS_EXPORT_DIR, **{
|
158 |
"output_dir": OUTPUT_DIR,
|
159 |
"name": "test-instance", |
160 |
"os": "lenny-image", |
161 |
"hypervisor": ("xen-pvm", {}), |
162 |
"osparams":{},
|
163 |
"disks": [],
|
164 |
}) |
165 |
ARGS_COMPLETE = dict(ARGS_VBOX, **{
|
166 |
"beparams": {"vcpus":"1", "memory":"256", "auto_balance": False}, |
167 |
"disks": [(0,{"size":"5mb"})], |
168 |
"nics": [("0",{"mode":"bridged"})], |
169 |
"disk_template": "plain", |
170 |
"tags": "test-tag-1,test-tag-2", |
171 |
}) |
172 |
ARGS_BROKEN = dict(ARGS_EXPORT_DIR , **{
|
173 |
"no_nics": True, |
174 |
"disk_template": "diskless", |
175 |
"name": "test-instance", |
176 |
"os": "lenny-image", |
177 |
"osparams": {},
|
178 |
}) |
179 |
|
180 |
|
181 |
def _GetArgs(args, with_name=False): |
182 |
options = optparse.Values() |
183 |
needed = args |
184 |
if with_name:
|
185 |
needed["name"] = "test-instance" |
186 |
options._update_loose(needed) |
187 |
return options
|
188 |
|
189 |
|
190 |
OPTS_EMPTY = _GetArgs(ARGS_EMPTY) |
191 |
OPTS_EXPORT_NO_NAME = _GetArgs(ARGS_EXPORT_DIR) |
192 |
OPTS_EXPORT = _GetArgs(ARGS_EXPORT_DIR, with_name=True)
|
193 |
OPTS_VBOX = _GetArgs(ARGS_VBOX) |
194 |
OPTS_COMPLETE = _GetArgs(ARGS_COMPLETE) |
195 |
OPTS_NONIC_NODISK = _GetArgs(ARGS_BROKEN) |
196 |
|
197 |
|
198 |
def _GetFullFilename(file_name): |
199 |
file_path = "%s/test/data/ovfdata/%s" % (testutils.GetSourceDir(),
|
200 |
file_name) |
201 |
file_path = os.path.abspath(file_path) |
202 |
return file_path
|
203 |
|
204 |
|
205 |
class BetterUnitTest(unittest.TestCase): |
206 |
def assertRaisesRegexp(self, exception, regexp_val, function, *args): |
207 |
try:
|
208 |
function(*args) |
209 |
self.fail("Expected raising %s" % exception) |
210 |
except exception, err:
|
211 |
regexp = re.compile(regexp_val) |
212 |
if re.search(regexp, str(err)) == None: |
213 |
self.fail("Expected matching '%s', got '%s'" % |
214 |
(regexp_val, str(err)))
|
215 |
|
216 |
|
217 |
class TestOVFImporter(BetterUnitTest): |
218 |
def setUp(self): |
219 |
self.non_existing_file = _GetFullFilename("not_the_file.ovf") |
220 |
self.ganeti_ovf = _GetFullFilename("ganeti.ovf") |
221 |
self.virtualbox_ovf = _GetFullFilename("virtualbox.ovf") |
222 |
self.ova_package = _GetFullFilename("ova.ova") |
223 |
self.empty_ovf = _GetFullFilename("empty.ovf") |
224 |
self.wrong_extension = _GetFullFilename("wrong_extension.ovd") |
225 |
self.wrong_ova_archive = _GetFullFilename("wrong_ova.ova") |
226 |
self.no_ovf_in_ova = _GetFullFilename("no_ovf.ova") |
227 |
self.importer = None |
228 |
|
229 |
def tearDown(self): |
230 |
if self.importer: |
231 |
self.importer.Cleanup()
|
232 |
del_dir = os.path.abspath(OUTPUT_DIR) |
233 |
try:
|
234 |
shutil.rmtree(del_dir) |
235 |
except OSError: |
236 |
pass
|
237 |
|
238 |
def testFileDoesNotExistError(self): |
239 |
self.assertRaisesRegexp(errors.OpPrereqError, "does not exist", |
240 |
ovf.OVFImporter, self.non_existing_file, None) |
241 |
|
242 |
def testWrongInputFileExtensionError(self): |
243 |
self.assertRaisesRegexp(errors.OpPrereqError,
|
244 |
"Unknown file extension", ovf.OVFImporter,
|
245 |
self.wrong_extension, None) |
246 |
|
247 |
def testOVAUnpackingDirectories(self): |
248 |
self.importer = ovf.OVFImporter(self.ova_package, OPTS_EMPTY) |
249 |
self.assertTrue(self.importer.input_dir != None) |
250 |
self.assertEquals(self.importer.output_dir , constants.EXPORT_DIR) |
251 |
self.assertTrue(self.importer.temp_dir != None) |
252 |
|
253 |
def testOVFUnpackingDirectories(self): |
254 |
self.importer = ovf.OVFImporter(self.virtualbox_ovf, |
255 |
OPTS_EMPTY) |
256 |
self.assertEquals(self.importer.input_dir , _GetFullFilename("")) |
257 |
self.assertEquals(self.importer.output_dir , constants.EXPORT_DIR) |
258 |
self.assertEquals(self.importer.temp_dir , None) |
259 |
|
260 |
def testOVFSetOutputDirDirectories(self): |
261 |
self.importer = ovf.OVFImporter(self.ganeti_ovf, OPTS_EXPORT) |
262 |
self.assertEquals(self.importer.input_dir , _GetFullFilename("")) |
263 |
self.assertTrue(OUTPUT_DIR in self.importer.output_dir) |
264 |
self.assertEquals(self.importer.temp_dir , None) |
265 |
|
266 |
def testWrongOVAArchiveError(self): |
267 |
self.assertRaisesRegexp(errors.OpPrereqError, "not a proper tar", |
268 |
ovf.OVFImporter, self.wrong_ova_archive, None) |
269 |
|
270 |
def testNoOVFFileInOVAPackageError(self): |
271 |
self.assertRaisesRegexp(errors.OpPrereqError, "No .ovf file", |
272 |
ovf.OVFImporter, self.no_ovf_in_ova, None) |
273 |
|
274 |
def testParseGanetiOvf(self): |
275 |
self.importer = ovf.OVFImporter(self.ganeti_ovf, OPTS_EXPORT_NO_NAME) |
276 |
self.importer.Parse()
|
277 |
self.assertTrue("%s/ganeti-test-xen" % OUTPUT_DIR in |
278 |
self.importer.output_dir)
|
279 |
self.assertEqual(self.importer.results_disk, GANETI_DISKS) |
280 |
self.assertEqual(self.importer.results_network, GANETI_NETWORKS) |
281 |
self.assertEqual(self.importer.results_hypervisor, GANETI_HYPERVISOR) |
282 |
self.assertEqual(self.importer.results_os, GANETI_OS) |
283 |
self.assertEqual(self.importer.results_backend, GANETI_BACKEND) |
284 |
self.assertEqual(self.importer.results_name, GANETI_NAME) |
285 |
self.assertEqual(self.importer.results_template, GANETI_TEMPLATE) |
286 |
self.assertEqual(self.importer.results_tags, GANETI_TAGS) |
287 |
self.assertEqual(self.importer.results_version, GANETI_VERSION) |
288 |
|
289 |
def testParseVirtualboxOvf(self): |
290 |
self.importer = ovf.OVFImporter(self.virtualbox_ovf, OPTS_VBOX) |
291 |
self.importer.Parse()
|
292 |
self.assertTrue("%s/test-instance" % OUTPUT_DIR in self.importer.output_dir) |
293 |
self.assertEquals(self.importer.results_disk, VIRTUALBOX_DISKS) |
294 |
self.assertEquals(self.importer.results_network, VIRTUALBOX_NETWORKS) |
295 |
self.assertEquals(self.importer.results_hypervisor, CMDARGS_HYPERVISOR) |
296 |
self.assertEquals(self.importer.results_os, CMDARGS_OS) |
297 |
self.assertEquals(self.importer.results_backend, VIRTUALBOX_BACKEND) |
298 |
self.assertEquals(self.importer.results_name, CMDARGS_NAME) |
299 |
self.assertEquals(self.importer.results_template, VIRTUALBOX_TEMPLATE) |
300 |
self.assertEqual(self.importer.results_tags, VIRTUALBOX_TAGS) |
301 |
self.assertEqual(self.importer.results_version, constants.EXPORT_VERSION) |
302 |
|
303 |
def testParseEmptyOvf(self): |
304 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
305 |
self.importer.Parse()
|
306 |
self.assertTrue("%s/test-instance" % OUTPUT_DIR in self.importer.output_dir) |
307 |
self.assertEquals(self.importer.results_disk, CMDARGS_DISKS) |
308 |
self.assertEquals(self.importer.results_network, CMDARGS_NETWORKS) |
309 |
self.assertEquals(self.importer.results_hypervisor, CMDARGS_HYPERVISOR) |
310 |
self.assertEquals(self.importer.results_os, CMDARGS_OS) |
311 |
self.assertEquals(self.importer.results_backend, CMDARGS_BACKEND) |
312 |
self.assertEquals(self.importer.results_name, CMDARGS_NAME) |
313 |
self.assertEquals(self.importer.results_template, CMDARGS_TEMPLATE) |
314 |
self.assertEqual(self.importer.results_tags, CMDARGS_TAGS) |
315 |
self.assertEqual(self.importer.results_version, constants.EXPORT_VERSION) |
316 |
|
317 |
def testParseNameOptions(self): |
318 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
319 |
results = self.importer._ParseNameOptions()
|
320 |
self.assertEquals(results, CMDARGS_NAME)
|
321 |
|
322 |
def testParseHypervisorOptions(self): |
323 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
324 |
results = self.importer._ParseHypervisorOptions()
|
325 |
self.assertEquals(results, CMDARGS_HYPERVISOR)
|
326 |
|
327 |
def testParseOSOptions(self): |
328 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
329 |
results = self.importer._ParseOSOptions()
|
330 |
self.assertEquals(results, CMDARGS_OS)
|
331 |
|
332 |
def testParseBackendOptions(self): |
333 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
334 |
results = self.importer._ParseBackendOptions()
|
335 |
self.assertEquals(results, CMDARGS_BACKEND)
|
336 |
|
337 |
def testParseTags(self): |
338 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
339 |
results = self.importer._ParseTags()
|
340 |
self.assertEquals(results, CMDARGS_TAGS)
|
341 |
|
342 |
def testParseNicOptions(self): |
343 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
344 |
results = self.importer._ParseNicOptions()
|
345 |
self.assertEquals(results, CMDARGS_NETWORKS)
|
346 |
|
347 |
def testParseDiskOptionsFromGanetiOVF(self): |
348 |
self.importer = ovf.OVFImporter(self.ganeti_ovf, OPTS_EXPORT) |
349 |
os.mkdir(OUTPUT_DIR) |
350 |
results = self.importer._GetDiskInfo()
|
351 |
self.assertEquals(results, GANETI_DISKS)
|
352 |
|
353 |
def testParseTemplateOptions(self): |
354 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
355 |
results = self.importer._ParseTemplateOptions()
|
356 |
self.assertEquals(results, GANETI_TEMPLATE)
|
357 |
|
358 |
def testParseDiskOptionsFromCmdLine(self): |
359 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_COMPLETE) |
360 |
os.mkdir(OUTPUT_DIR) |
361 |
results = self.importer._ParseDiskOptions()
|
362 |
self.assertEquals(results, CMDARGS_DISKS)
|
363 |
|
364 |
def testGetDiskFormat(self): |
365 |
self.importer = ovf.OVFImporter(self.ganeti_ovf, OPTS_EXPORT) |
366 |
disks_list = self.importer.ovf_reader.GetDisksNames()
|
367 |
results = [self.importer._GetDiskQemuInfo("%s/%s" % |
368 |
(self.importer.input_dir, path), "file format: (\S+)") |
369 |
for (path, _) in disks_list] |
370 |
self.assertEqual(results, ["vmdk"]) |
371 |
|
372 |
def testNoInstanceNameOVF(self): |
373 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_EXPORT_NO_NAME) |
374 |
self.assertRaisesRegexp(errors.OpPrereqError, "Name of instance", |
375 |
self.importer.Parse)
|
376 |
|
377 |
def testErrorNoOSNameOVF(self): |
378 |
self.importer = ovf.OVFImporter(self.virtualbox_ovf, OPTS_EXPORT) |
379 |
self.assertRaisesRegexp(errors.OpPrereqError, "OS name", |
380 |
self.importer.Parse)
|
381 |
|
382 |
def testErrorNoDiskAndNoNetwork(self): |
383 |
self.importer = ovf.OVFImporter(self.empty_ovf, OPTS_NONIC_NODISK) |
384 |
self.assertRaisesRegexp(errors.OpPrereqError,
|
385 |
"Either disk specification or network"
|
386 |
" description", self.importer.Parse) |
387 |
|
388 |
|
389 |
class TestOVFReader(BetterUnitTest): |
390 |
def setUp(self): |
391 |
self.wrong_xml_file = _GetFullFilename("wrong_xml.ovf") |
392 |
self.ganeti_ovf = _GetFullFilename("ganeti.ovf") |
393 |
self.virtualbox_ovf = _GetFullFilename("virtualbox.ovf") |
394 |
self.corrupted_ovf = _GetFullFilename("corrupted_resources.ovf") |
395 |
self.wrong_manifest_ovf = _GetFullFilename("wrong_manifest.ovf") |
396 |
self.no_disk_in_ref_ovf = _GetFullFilename("no_disk_in_ref.ovf") |
397 |
self.empty_ovf = _GetFullFilename("empty.ovf") |
398 |
self.compressed_disk = _GetFullFilename("gzip_disk.ovf") |
399 |
|
400 |
def tearDown(self): |
401 |
pass
|
402 |
|
403 |
def testXMLParsingError(self): |
404 |
self.assertRaisesRegexp(errors.OpPrereqError,
|
405 |
"Error while reading .ovf", ovf.OVFReader, self.wrong_xml_file) |
406 |
|
407 |
def testFileInResourcesDoesNotExistError(self): |
408 |
self.assertRaisesRegexp(errors.OpPrereqError, "does not exist", |
409 |
ovf.OVFReader, self.corrupted_ovf)
|
410 |
|
411 |
def testWrongManifestChecksumError(self): |
412 |
reader = ovf.OVFReader(self.wrong_manifest_ovf)
|
413 |
self.assertRaisesRegexp(errors.OpPrereqError,
|
414 |
"does not match the value in manifest file", reader.VerifyManifest)
|
415 |
|
416 |
def testGoodManifestChecksum(self): |
417 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
418 |
self.assertEqual(reader.VerifyManifest(), None) |
419 |
|
420 |
def testGetDisksNamesOVFCorruptedError(self): |
421 |
reader = ovf.OVFReader(self.no_disk_in_ref_ovf)
|
422 |
self.assertRaisesRegexp(errors.OpPrereqError,
|
423 |
"not found in references", reader.GetDisksNames)
|
424 |
|
425 |
def testGetDisksNamesVirtualbox(self): |
426 |
reader = ovf.OVFReader(self.virtualbox_ovf)
|
427 |
disk_names = reader.GetDisksNames() |
428 |
expected_names = [ |
429 |
("new_disk.vmdk", None) , |
430 |
("second_disk.vmdk", None), |
431 |
] |
432 |
self.assertEqual(sorted(disk_names), sorted(expected_names)) |
433 |
|
434 |
def testGetDisksNamesEmpty(self): |
435 |
reader = ovf.OVFReader(self.empty_ovf)
|
436 |
disk_names = reader.GetDisksNames() |
437 |
self.assertEqual(disk_names, [])
|
438 |
|
439 |
def testGetDisksNamesCompressed(self): |
440 |
reader = ovf.OVFReader(self.compressed_disk)
|
441 |
disk_names = reader.GetDisksNames() |
442 |
self.assertEqual(disk_names, [("compr_disk.vmdk.gz", "gzip")]) |
443 |
|
444 |
def testGetNetworkDataGaneti(self): |
445 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
446 |
networks = reader.GetNetworkData() |
447 |
self.assertEqual(networks, GANETI_NETWORKS)
|
448 |
|
449 |
def testGetNetworkDataVirtualbox(self): |
450 |
reader = ovf.OVFReader(self.virtualbox_ovf)
|
451 |
networks = reader.GetNetworkData() |
452 |
self.assertEqual(networks, VIRTUALBOX_NETWORKS)
|
453 |
|
454 |
def testGetNetworkDataEmpty(self): |
455 |
reader = ovf.OVFReader(self.empty_ovf)
|
456 |
networks = reader.GetNetworkData() |
457 |
self.assertEqual(networks, EMPTY_NETWORKS)
|
458 |
|
459 |
def testGetHypervisorDataGaneti(self): |
460 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
461 |
hypervisor = reader.GetHypervisorData() |
462 |
self.assertEqual(hypervisor, GANETI_HYPERVISOR)
|
463 |
|
464 |
def testGetHypervisorDataEmptyOvf(self): |
465 |
reader = ovf.OVFReader(self.empty_ovf)
|
466 |
hypervisor = reader.GetHypervisorData() |
467 |
self.assertEqual(hypervisor, EMPTY_HYPERVISOR)
|
468 |
|
469 |
def testGetOSDataGaneti(self): |
470 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
471 |
osys = reader.GetOSData() |
472 |
self.assertEqual(osys, GANETI_OS)
|
473 |
|
474 |
def testGetOSDataEmptyOvf(self): |
475 |
reader = ovf.OVFReader(self.empty_ovf)
|
476 |
osys = reader.GetOSData() |
477 |
self.assertEqual(osys, EMPTY_OS)
|
478 |
|
479 |
def testGetBackendDataGaneti(self): |
480 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
481 |
backend = reader.GetBackendData() |
482 |
self.assertEqual(backend, GANETI_BACKEND)
|
483 |
|
484 |
def testGetBackendDataVirtualbox(self): |
485 |
reader = ovf.OVFReader(self.virtualbox_ovf)
|
486 |
backend = reader.GetBackendData() |
487 |
self.assertEqual(backend, VIRTUALBOX_BACKEND)
|
488 |
|
489 |
def testGetBackendDataEmptyOvf(self): |
490 |
reader = ovf.OVFReader(self.empty_ovf)
|
491 |
backend = reader.GetBackendData() |
492 |
self.assertEqual(backend, EMPTY_BACKEND)
|
493 |
|
494 |
def testGetInstanceNameGaneti(self): |
495 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
496 |
name = reader.GetInstanceName() |
497 |
self.assertEqual(name, GANETI_NAME)
|
498 |
|
499 |
def testGetInstanceNameDataEmptyOvf(self): |
500 |
reader = ovf.OVFReader(self.empty_ovf)
|
501 |
name = reader.GetInstanceName() |
502 |
self.assertEqual(name, EMPTY_NAME)
|
503 |
|
504 |
def testGetDiskTemplateGaneti(self): |
505 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
506 |
name = reader.GetDiskTemplate() |
507 |
self.assertEqual(name, GANETI_TEMPLATE)
|
508 |
|
509 |
def testGetDiskTemplateEmpty(self): |
510 |
reader = ovf.OVFReader(self.empty_ovf)
|
511 |
name = reader.GetDiskTemplate() |
512 |
self.assertEqual(name, EMPTY_TEMPLATE)
|
513 |
|
514 |
def testGetTagsGaneti(self): |
515 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
516 |
tags = reader.GetTagsData() |
517 |
self.assertEqual(tags, GANETI_TAGS)
|
518 |
|
519 |
def testGetTagsEmpty(self): |
520 |
reader = ovf.OVFReader(self.empty_ovf)
|
521 |
tags = reader.GetTagsData() |
522 |
self.assertEqual(tags, EMPTY_TAGS)
|
523 |
|
524 |
def testGetVersionGaneti(self): |
525 |
reader = ovf.OVFReader(self.ganeti_ovf)
|
526 |
version = reader.GetVersionData() |
527 |
self.assertEqual(version, GANETI_VERSION)
|
528 |
|
529 |
def testGetVersionEmpty(self): |
530 |
reader = ovf.OVFReader(self.empty_ovf)
|
531 |
version = reader.GetVersionData() |
532 |
self.assertEqual(version, EMPTY_VERSION)
|
533 |
|
534 |
|
535 |
if __name__ == "__main__": |
536 |
testutils.GanetiTestProgram() |