Revision dcedd81a
b/Makefile.am | ||
---|---|---|
1131 | 1131 |
test/data/kvm_0.9.1_help_boot_test.txt \ |
1132 | 1132 |
test/data/kvm_1.0_help.txt \ |
1133 | 1133 |
test/data/kvm_1.1.2_help.txt \ |
1134 |
test/data/kvm_runtime.json \ |
|
1134 | 1135 |
test/data/NEWS_OK.txt \ |
1135 | 1136 |
test/data/NEWS_previous_unreleased.txt \ |
1136 | 1137 |
test/data/ovfdata/compr_disk.vmdk.gz \ |
b/test/data/kvm_runtime.json | ||
---|---|---|
1 |
[ |
|
2 |
[ |
|
3 |
"/usr/bin/kvm", |
|
4 |
"-name", |
|
5 |
"xen-test-inst2", |
|
6 |
"-m", |
|
7 |
1024, |
|
8 |
"-smp", |
|
9 |
"1", |
|
10 |
"-pidfile", |
|
11 |
"/var/run/ganeti/kvm-hypervisor/pid/xen-test-inst2", |
|
12 |
"-balloon", |
|
13 |
"virtio", |
|
14 |
"-daemonize", |
|
15 |
"-machine", |
|
16 |
"pc-1.1", |
|
17 |
"-monitor", |
|
18 |
"unix:/var/run/ganeti/kvm-hypervisor/ctrl/xen-test-inst2.monitor,server,nowait", |
|
19 |
"-serial", |
|
20 |
"unix:/var/run/ganeti/kvm-hypervisor/ctrl/xen-test-inst2.serial,server,nowait", |
|
21 |
"-usb", |
|
22 |
"-usbdevice", |
|
23 |
"tablet", |
|
24 |
"-vnc", |
|
25 |
":5100" |
|
26 |
], |
|
27 |
[ |
|
28 |
{ |
|
29 |
"mac": "aa:00:00:bf:2f:16", |
|
30 |
"nicparams": { |
|
31 |
"link": "br0", |
|
32 |
"mode": "bridged" |
|
33 |
}, |
|
34 |
"pci": 6, |
|
35 |
"uuid": "003fc157-66a8-4e6d-8b7e-ec4f69751396" |
|
36 |
} |
|
37 |
], |
|
38 |
{ |
|
39 |
"acpi": true, |
|
40 |
"boot_order": "disk", |
|
41 |
"cdrom2_image_path": "", |
|
42 |
"cdrom_disk_type": "", |
|
43 |
"cdrom_image_path": "", |
|
44 |
"cpu_cores": 0, |
|
45 |
"cpu_mask": "all", |
|
46 |
"cpu_sockets": 0, |
|
47 |
"cpu_threads": 0, |
|
48 |
"cpu_type": "", |
|
49 |
"disk_cache": "default", |
|
50 |
"disk_type": "paravirtual", |
|
51 |
"floppy_image_path": "", |
|
52 |
"initrd_path": "", |
|
53 |
"kernel_args": "ro", |
|
54 |
"kernel_path": "", |
|
55 |
"keymap": "", |
|
56 |
"kvm_extra": "", |
|
57 |
"kvm_flag": "", |
|
58 |
"kvm_path": "/usr/bin/kvm", |
|
59 |
"machine_version": "", |
|
60 |
"mem_path": "", |
|
61 |
"migration_bandwidth": 32, |
|
62 |
"migration_downtime": 30, |
|
63 |
"migration_mode": "live", |
|
64 |
"migration_port": 8102, |
|
65 |
"nic_type": "paravirtual", |
|
66 |
"reboot_behavior": "reboot", |
|
67 |
"root_path": "/dev/vda1", |
|
68 |
"security_domain": "", |
|
69 |
"security_model": "none", |
|
70 |
"serial_console": true, |
|
71 |
"serial_speed": 38400, |
|
72 |
"soundhw": "", |
|
73 |
"spice_bind": "", |
|
74 |
"spice_image_compression": "", |
|
75 |
"spice_ip_version": 0, |
|
76 |
"spice_jpeg_wan_compression": "", |
|
77 |
"spice_password_file": "", |
|
78 |
"spice_playback_compression": true, |
|
79 |
"spice_streaming_video": "", |
|
80 |
"spice_tls_ciphers": "HIGH:-DES:-3DES:-EXPORT:-ADH", |
|
81 |
"spice_use_tls": false, |
|
82 |
"spice_use_vdagent": true, |
|
83 |
"spice_zlib_glz_wan_compression": "", |
|
84 |
"usb_devices": "", |
|
85 |
"usb_mouse": "", |
|
86 |
"use_chroot": false, |
|
87 |
"use_localtime": false, |
|
88 |
"vga": "", |
|
89 |
"vhost_net": false, |
|
90 |
"vnc_bind_address": "0.0.0.0", |
|
91 |
"vnc_password_file": "", |
|
92 |
"vnc_tls": false, |
|
93 |
"vnc_x509_path": "", |
|
94 |
"vnc_x509_verify": false, |
|
95 |
"vnet_hdr": true |
|
96 |
}, |
|
97 |
[ |
|
98 |
[ |
|
99 |
{ |
|
100 |
"dev_type": "lvm", |
|
101 |
"iv_name": "disk/0", |
|
102 |
"logical_id": [ |
|
103 |
"autovg", |
|
104 |
"b9d4ee8e-c81b-42eb-9899-60481886c7ac.disk0" |
|
105 |
], |
|
106 |
"mode": "rw", |
|
107 |
"name": "disk0", |
|
108 |
"params": { |
|
109 |
"stripes": 1 |
|
110 |
}, |
|
111 |
"pci": 4, |
|
112 |
"size": 1024, |
|
113 |
"uuid": "7c079136-2573-4112-82d0-0d3d2aa90d8f" |
|
114 |
}, |
|
115 |
"/var/run/ganeti/instance-disks/xen-test-inst2:0" |
|
116 |
], |
|
117 |
[ |
|
118 |
{ |
|
119 |
"dev_type": "lvm", |
|
120 |
"iv_name": "disk/1", |
|
121 |
"logical_id": [ |
|
122 |
"autovg", |
|
123 |
"602c0a3b-d09b-4ebe-9774-5f12ef654a1f.disk1" |
|
124 |
], |
|
125 |
"mode": "rw", |
|
126 |
"name": "disk1", |
|
127 |
"params": { |
|
128 |
"stripes": 1 |
|
129 |
}, |
|
130 |
"pci": 5, |
|
131 |
"size": 512, |
|
132 |
"uuid": "9f5c5bd4-6f60-480b-acdc-9bb1a4b7df79" |
|
133 |
}, |
|
134 |
"/var/run/ganeti/instance-disks/xen-test-inst2:1" |
|
135 |
] |
|
136 |
] |
|
137 |
] |
b/test/py/ganeti.hypervisor.hv_kvm_unittest.py | ||
---|---|---|
27 | 27 |
import socket |
28 | 28 |
import os |
29 | 29 |
import struct |
30 |
import re |
|
30 | 31 |
|
31 | 32 |
from ganeti import serializer |
32 | 33 |
from ganeti import constants |
... | ... | |
366 | 367 |
self.assertFalse(hv_kvm._ProbeTapVnetHdr(fd, _features_fn=lambda _: None)) |
367 | 368 |
|
368 | 369 |
|
370 |
class TestGenerateDeviceKVMId(unittest.TestCase): |
|
371 |
def test(self): |
|
372 |
device = objects.NIC() |
|
373 |
target = constants.HOTPLUG_TARGET_NIC |
|
374 |
fn = hv_kvm._GenerateDeviceKVMId |
|
375 |
self.assertRaises(errors.HotplugError, fn, target, device) |
|
376 |
|
|
377 |
device.pci = 5 |
|
378 |
device.uuid = "003fc157-66a8-4e6d-8b7e-ec4f69751396" |
|
379 |
self.assertTrue(re.match("hotnic-003fc157-pci-5", fn(target, device))) |
|
380 |
|
|
381 |
|
|
382 |
class TestGetRuntimeInfo(unittest.TestCase): |
|
383 |
@classmethod |
|
384 |
def _GetRuntime(cls): |
|
385 |
data = testutils.ReadTestData("kvm_runtime.json") |
|
386 |
return hv_kvm._AnalyzeSerializedRuntime(data) |
|
387 |
|
|
388 |
def _fail(self, target, device, runtime): |
|
389 |
device.uuid = "aaaaaaaa-66a8-4e6d-8b7e-ec4f69751396" |
|
390 |
self.assertRaises(errors.HotplugError, |
|
391 |
hv_kvm._GetExistingDeviceInfo, |
|
392 |
target, device, runtime) |
|
393 |
|
|
394 |
def testNIC(self): |
|
395 |
device = objects.NIC() |
|
396 |
target = constants.HOTPLUG_TARGET_NIC |
|
397 |
runtime = self._GetRuntime() |
|
398 |
|
|
399 |
self._fail(target, device, runtime) |
|
400 |
|
|
401 |
device.uuid = "003fc157-66a8-4e6d-8b7e-ec4f69751396" |
|
402 |
devinfo = hv_kvm._GetExistingDeviceInfo(target, device, runtime) |
|
403 |
self.assertTrue(devinfo.pci==6) |
|
404 |
|
|
405 |
def testDisk(self): |
|
406 |
device = objects.Disk() |
|
407 |
target = constants.HOTPLUG_TARGET_DISK |
|
408 |
runtime = self._GetRuntime() |
|
409 |
|
|
410 |
self._fail(target, device, runtime) |
|
411 |
|
|
412 |
device.uuid = "9f5c5bd4-6f60-480b-acdc-9bb1a4b7df79" |
|
413 |
(devinfo, _) = hv_kvm._GetExistingDeviceInfo(target, device, runtime) |
|
414 |
self.assertTrue(devinfo.pci==5) |
|
415 |
|
|
416 |
|
|
369 | 417 |
if __name__ == "__main__": |
370 | 418 |
testutils.GanetiTestProgram() |
Also available in: Unified diff