From 215add554adb88d9ded4267f07968d8a7d166a45 Mon Sep 17 00:00:00 2001 From: Sahid Orentino Ferdjaoui Date: Tue, 25 Apr 2017 08:30:38 -0400 Subject: [PATCH] libvirt: rearange how scsi controller is defined This commit make just cleaner how we configure the scsi controller. Closes-Bug: #1686116 Change-Id: I03b03962748db7081abd5aebf3578ddc4e30fe68 --- nova/virt/libvirt/driver.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 456961146705..0139f803b87f 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -3611,6 +3611,7 @@ class LibvirtDriver(driver.ComputeDriver): block_device_mapping = driver.block_device_info_get_mapping( block_device_info) mount_rootfs = CONF.libvirt.virt_type == "lxc" + scsi_controller = self._get_scsi_controller(image_meta) def _get_ephemeral_devices(): eph_devices = [] @@ -3707,14 +3708,21 @@ class LibvirtDriver(driver.ComputeDriver): for d in devices: self._set_cache_mode(d) + if scsi_controller: + devices.append(scsi_controller) + + return devices + + @staticmethod + def _get_scsi_controller(image_meta): + """Return scsi controller or None based on image meta""" + # TODO(sahid): should raise an exception for an invalid controller if image_meta.properties.get('hw_scsi_model'): hw_scsi_model = image_meta.properties.hw_scsi_model scsi_controller = vconfig.LibvirtConfigGuestController() scsi_controller.type = 'scsi' scsi_controller.model = hw_scsi_model - devices.append(scsi_controller) - - return devices + return scsi_controller def _get_host_sysinfo_serial_hardware(self): """Get a UUID from the host hardware