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