diff --git a/nova/tests/unit/virt/libvirt/test_blockinfo.py b/nova/tests/unit/virt/libvirt/test_blockinfo.py index 58d3e591fc18..a15c5cc6df7c 100644 --- a/nova/tests/unit/virt/libvirt/test_blockinfo.py +++ b/nova/tests/unit/virt/libvirt/test_blockinfo.py @@ -124,10 +124,6 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): dev = blockinfo.find_disk_dev_for_disk_bus(mapping, 'scsi') self.assertEqual('sdb', dev) - dev = blockinfo.find_disk_dev_for_disk_bus(mapping, 'scsi', - last_device=True) - self.assertEqual('sdz', dev) - dev = blockinfo.find_disk_dev_for_disk_bus(mapping, 'virtio') self.assertEqual('vda', dev) @@ -164,9 +160,8 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): mapping['disk.config'] = blockinfo.get_next_disk_info(mapping, 'ide', - 'cdrom', - True) - self.assertEqual({'dev': 'hdd', 'bus': 'ide', 'type': 'cdrom'}, + 'cdrom') + self.assertEqual({'dev': 'hda', 'bus': 'ide', 'type': 'cdrom'}, mapping['disk.config']) def test_get_next_disk_dev_boot_index(self): @@ -262,7 +257,7 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): 'disk.rescue': {'bus': 'virtio', 'dev': 'vda', 'type': 'disk', 'boot_index': '1'}, 'disk': {'bus': 'virtio', 'dev': 'vdb', 'type': 'disk'}, - 'disk.config.rescue': {'bus': 'ide', 'dev': 'hdd', + 'disk.config.rescue': {'bus': 'ide', 'dev': 'hda', 'type': 'cdrom'}, 'root': {'bus': 'virtio', 'dev': 'vda', 'type': 'disk', 'boot_index': '1'}, @@ -379,17 +374,17 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): "virtio", "ide", image_meta) - # The last device is selected for this. on x86 is the last ide - # device (hdd). Since power only support scsi, the last device - # is sdz + # Pick the first drive letter on the bus that is available + # as the config drive. Delete the last device hardcode as + # the config drive here. - bus_ppc = ("scsi", "sdz") - bus_aarch64 = ("scsi", "sdz") + bus_ppc = ("scsi", "sda") + bus_aarch64 = ("scsi", "sda") expect_bus = {"ppc": bus_ppc, "ppc64": bus_ppc, "ppc64le": bus_ppc, "aarch64": bus_aarch64} bus, dev = expect_bus.get(blockinfo.libvirt_utils.get_arch({}), - ("ide", "hdd")) + ("ide", "hda")) expect = { 'disk': {'bus': 'virtio', 'dev': 'vda', @@ -418,13 +413,13 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): "virtio", "ide", image_meta) - bus_ppc = ("scsi", "sdz") - bus_aarch64 = ("scsi", "sdz") + bus_ppc = ("scsi", "sda") + bus_aarch64 = ("scsi", "sda") expect_bus = {"ppc": bus_ppc, "ppc64": bus_ppc, "ppc64le": bus_ppc, "aarch64": bus_aarch64} bus, dev = expect_bus.get(blockinfo.libvirt_utils.get_arch({}), - ("ide", "hdd")) + ("ide", "hda")) expect = { 'disk': {'bus': 'virtio', 'dev': 'vda', @@ -454,7 +449,7 @@ class LibvirtBlockInfoTest(test.NoDBTestCase): 'disk': {'bus': 'virtio', 'dev': 'vda', 'type': 'disk', 'boot_index': '1'}, 'disk.local': {'bus': 'virtio', 'dev': 'vdb', 'type': 'disk'}, - 'disk.config': {'bus': 'virtio', 'dev': 'vdz', 'type': 'disk'}, + 'disk.config': {'bus': 'virtio', 'dev': 'vdc', 'type': 'disk'}, 'root': {'bus': 'virtio', 'dev': 'vda', 'type': 'disk', 'boot_index': '1'}, } diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 653ee7fbe756..5fd5af5324db 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -3377,13 +3377,13 @@ class LibvirtConnTestCase(test.NoDBTestCase): cfg = drvr._get_guest_config(instance_ref, [], image_meta, disk_info) - # The last device is selected for this. on x86 is the last ide - # device (hdd). Since power only support scsi, the last device - # is sdz + # Pick the first drive letter on the bus that is available + # as the config drive. Delete the last device hardcode as + # the config drive here. - expect = {"ppc": "sdz", "ppc64": "sdz", - "ppc64le": "sdz", "aarch64": "sdz"} - disk = expect.get(blockinfo.libvirt_utils.get_arch({}), "hdd") + expect = {"ppc": "sda", "ppc64": "sda", + "ppc64le": "sda", "aarch64": "sda"} + disk = expect.get(blockinfo.libvirt_utils.get_arch({}), "hda") self.assertIsInstance(cfg.devices[2], vconfig.LibvirtConfigGuestDisk) self.assertEqual(cfg.devices[2].target_dev, disk) @@ -14780,7 +14780,7 @@ class LibvirtConnTestCase(test.NoDBTestCase): mock_rbd_image.exists.return_value = False instance = objects.Instance() disk_mapping = {'disk.config': {'bus': 'ide', - 'dev': 'hdd', + 'dev': 'hda', 'type': 'file'}} flavor = objects.Flavor(extra_specs={}) diff --git a/nova/virt/libvirt/blockinfo.py b/nova/virt/libvirt/blockinfo.py index 6ebf6d20a4fb..6f8ceee2386b 100644 --- a/nova/virt/libvirt/blockinfo.py +++ b/nova/virt/libvirt/blockinfo.py @@ -164,15 +164,13 @@ def get_dev_count_for_disk_bus(disk_bus): def find_disk_dev_for_disk_bus(mapping, bus, - last_device=False, assigned_devices=None): """Identify a free disk dev name for a bus. Determines the possible disk dev names for the bus, and then checks them in order until it identifies one that is not yet used in the - disk mapping. If 'last_device' is set, it will - only consider the last available disk dev name. + disk mapping. Returns the chosen disk_dev name, or raises an exception if none is available. @@ -186,10 +184,7 @@ def find_disk_dev_for_disk_bus(mapping, bus, assigned_devices = [] max_dev = get_dev_count_for_disk_bus(bus) - if last_device: - devs = [max_dev - 1] - else: - devs = range(max_dev) + devs = range(max_dev) for idx in devs: disk_dev = dev_prefix + chr(ord('a') + idx) @@ -321,7 +316,6 @@ def get_disk_bus_for_disk_dev(virt_type, disk_dev): def get_next_disk_info(mapping, disk_bus, device_type='disk', - last_device=False, boot_index=None, assigned_devices=None): """Determine the disk info for the next device on disk_bus. @@ -335,7 +329,6 @@ def get_next_disk_info(mapping, disk_bus, disk_dev = find_disk_dev_for_disk_bus(mapping, disk_bus, - last_device, assigned_devices) info = {'bus': disk_bus, 'dev': disk_dev, @@ -530,8 +523,7 @@ def get_disk_mapping(virt_type, instance, device_type) config_info = get_next_disk_info(mapping, disk_bus, - device_type, - last_device=True) + device_type) mapping['disk.config.rescue'] = config_info return mapping @@ -616,8 +608,7 @@ def get_disk_mapping(virt_type, instance, device_type) config_info = get_next_disk_info(mapping, disk_bus, - device_type, - last_device=True) + device_type) mapping['disk.config'] = config_info return mapping