Fix device_type=lun with boot_index

Right now we'll fail to calculate the boot order of a set of BDMs if
one of them is a device_type=lun. This fixes that and teaches us
that it's just a "hd" from qemu's perspective.

Closes-Bug: #2065084
Change-Id: Ic1340918738d503fc797c9373fe2e1dd16b27a09
This commit is contained in:
Dan Smith
2024-05-07 10:31:11 -07:00
parent 575ff86a4f
commit 2f0c340d39
2 changed files with 16 additions and 1 deletions
@@ -1372,6 +1372,20 @@ class LibvirtBlockInfoTest(test.NoDBTestCase):
expected_order = ['hd', 'cdrom'] expected_order = ['hd', 'cdrom']
self.assertEqual(expected_order, blockinfo.get_boot_order(disk_info)) self.assertEqual(expected_order, blockinfo.get_boot_order(disk_info))
def test_get_boot_order_lun(self):
disk_info = {
'disk_bus': 'virtio',
'cdrom_bus': 'ide',
'mapping': {
'disk': {'bus': 'virtio', 'dev': 'vda',
'type': 'disk', 'boot_index': '1'},
'root': {'bus': 'virtio', 'dev': 'vda',
'type': 'lun', 'boot_index': '1'},
}
}
expected_order = ['hd']
self.assertEqual(expected_order, blockinfo.get_boot_order(disk_info))
def _get_rescue_image_meta(self, props_dict): def _get_rescue_image_meta(self, props_dict):
meta_dict = dict(self.test_image_meta) meta_dict = dict(self.test_image_meta)
meta_dict['properties'] = props_dict meta_dict['properties'] = props_dict
+2 -1
View File
@@ -88,7 +88,8 @@ from nova.virt import osinfo
CONF = cfg.CONF CONF = cfg.CONF
BOOT_DEV_FOR_TYPE = {'disk': 'hd', 'cdrom': 'cdrom', 'floppy': 'fd'} BOOT_DEV_FOR_TYPE = {'disk': 'hd', 'cdrom': 'cdrom', 'floppy': 'fd',
'lun': 'hd'}
# NOTE(aspiers): If you change this, don't forget to update the docs and # NOTE(aspiers): If you change this, don't forget to update the docs and
# metadata for hw_*_bus in glance. # metadata for hw_*_bus in glance.
SUPPORTED_DEVICE_BUSES = { SUPPORTED_DEVICE_BUSES = {