Merge "Pass disk_info dict to libvirt_info"

This commit is contained in:
Zuul 2018-11-02 18:15:54 +00:00 committed by Gerrit Code Review
commit 781c22818f
4 changed files with 22 additions and 25 deletions

View File

@ -196,16 +196,15 @@ class ImageBackendFixture(fixtures.Fixture):
if self.imported_files is not None:
self.imported_files.append((local_filename, remote_filename))
def _fake_libvirt_info(self, mock_disk, disk_bus, disk_dev, device_type,
cache_mode, extra_specs, hypervisor_version,
disk_unit=None):
def _fake_libvirt_info(self, mock_disk, disk_info, cache_mode,
extra_specs, hypervisor_version, disk_unit=None):
# For tests in test_virt_drivers which expect libvirt_info to be
# functional
info = config.LibvirtConfigGuestDisk()
info.source_type = 'file'
info.source_device = device_type
info.target_bus = disk_bus
info.target_dev = disk_dev
info.source_device = disk_info['type']
info.target_bus = disk_info['bus']
info.target_dev = disk_info['dev']
info.driver_cache = cache_mode
info.driver_format = 'raw'
info.source_path = mock_disk.path

View File

@ -171,10 +171,13 @@ class _ImageTestCase(object):
'quota:disk_total_bytes_sec': 30 * units.Mi,
'quota:disk_total_iops_sec': 3 * units.Ki,
}
disk_info = {
'bus': 'virtio',
'dev': '/dev/vda',
'type': 'cdrom',
}
disk = image.libvirt_info(disk_bus="virtio",
disk_dev="/dev/vda",
device_type="cdrom",
disk = image.libvirt_info(disk_info,
cache_mode="none",
extra_specs=extra_specs,
hypervisor_version=4004001,

View File

@ -3892,10 +3892,7 @@ class LibvirtDriver(driver.ComputeDriver):
if 'unit' in disk_mapping and disk_info['bus'] == 'scsi':
disk_unit = disk_mapping['unit']
disk_mapping['unit'] += 1 # Increments for the next disk added
conf = disk.libvirt_info(disk_info['bus'],
disk_info['dev'],
disk_info['type'],
self.disk_cachemode,
conf = disk.libvirt_info(disk_info, self.disk_cachemode,
inst_type['extra_specs'],
self._host.get_version(),
disk_unit=disk_unit)

View File

@ -119,24 +119,23 @@ class Image(object):
"""
pass
def libvirt_info(self, disk_bus, disk_dev, device_type, cache_mode,
def libvirt_info(self, disk_info, cache_mode,
extra_specs, hypervisor_version, boot_order=None,
disk_unit=None):
"""Get `LibvirtConfigGuestDisk` filled for this image.
:disk_dev: Disk bus device name
:disk_bus: Disk bus type
:device_type: Device type for this image.
:disk_info: Metadata generated by libvirt.blockinfo.get_disk_mapping
:cache_mode: Caching mode for this image
:extra_specs: Instance type extra specs dict.
:hypervisor_version: the hypervisor version
:boot_order: Disk device boot order
"""
disk_bus = disk_info['bus']
info = vconfig.LibvirtConfigGuestDisk()
info.source_type = self.source_type
info.source_device = device_type
info.source_device = disk_info['type']
info.target_bus = disk_bus
info.target_dev = disk_dev
info.target_dev = disk_info['dev']
info.driver_cache = cache_mode
info.driver_discard = self.discard_mode
info.driver_io = self.driver_io
@ -825,28 +824,27 @@ class Rbd(Image):
self.discard_mode = CONF.libvirt.hw_disk_discard
def libvirt_info(self, disk_bus, disk_dev, device_type, cache_mode,
def libvirt_info(self, disk_info, cache_mode,
extra_specs, hypervisor_version, boot_order=None,
disk_unit=None):
"""Get `LibvirtConfigGuestDisk` filled for this image.
:disk_dev: Disk bus device name
:disk_bus: Disk bus type
:device_type: Device type for this image.
:disk_info: Metadata generated by libvirt.blockinfo.get_disk_mapping
:cache_mode: Caching mode for this image
:extra_specs: Instance type extra specs dict.
:hypervisor_version: the hypervisor version
:boot_order: Disk device boot order
"""
info = vconfig.LibvirtConfigGuestDisk()
disk_bus = disk_info['bus']
hosts, ports = self.driver.get_mon_addrs()
info.source_device = device_type
info.source_device = disk_info['type']
info.driver_format = 'raw'
info.driver_cache = cache_mode
info.driver_discard = self.discard_mode
info.target_bus = disk_bus
info.target_dev = disk_dev
info.target_dev = disk_info['dev']
info.source_type = 'network'
info.source_protocol = 'rbd'
info.source_name = '%s/%s' % (self.pool, self.rbd_name)