Merge "libvirt: Remove MIN_LIBVIRT_MULTIATTACH"
This commit is contained in:
commit
d54c549885
@ -593,6 +593,7 @@ class ProviderUsageBaseTestCase(test.TestCase, InstanceHelperMixin):
|
||||
os_traits.COMPUTE_NET_ATTACH_INTERFACE_WITH_TAG,
|
||||
os_traits.COMPUTE_VOLUME_ATTACH_WITH_TAG,
|
||||
os_traits.COMPUTE_VOLUME_EXTEND,
|
||||
os_traits.COMPUTE_VOLUME_MULTI_ATTACH,
|
||||
os_traits.COMPUTE_TRUSTED_CERTS,
|
||||
os_traits.COMPUTE_IMAGE_TYPE_AKI,
|
||||
os_traits.COMPUTE_IMAGE_TYPE_AMI,
|
||||
|
@ -26329,54 +26329,6 @@ class LVMSnapshotTests(_BaseSnapshotTests):
|
||||
self._test_lvm_snapshot('qcow2')
|
||||
|
||||
|
||||
class TestLibvirtMultiattach(test.NoDBTestCase):
|
||||
"""Libvirt driver tests for volume multiattach support."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestLibvirtMultiattach, self).setUp()
|
||||
self.useFixture(fakelibvirt.FakeLibvirtFixture())
|
||||
|
||||
@mock.patch('nova.virt.libvirt.host.Host.has_min_version',
|
||||
return_value=True)
|
||||
def test_init_host_supports_multiattach_new_enough_libvirt(self, min_ver):
|
||||
"""Tests that the driver supports multiattach because libvirt>=3.10.
|
||||
"""
|
||||
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
|
||||
drvr._set_multiattach_support()
|
||||
self.assertTrue(drvr.capabilities['supports_multiattach'])
|
||||
min_ver.assert_called_once_with(
|
||||
lv_ver=libvirt_driver.MIN_LIBVIRT_MULTIATTACH)
|
||||
|
||||
@mock.patch('nova.virt.libvirt.host.Host.has_min_version',
|
||||
side_effect=[False, False])
|
||||
def test_init_host_supports_multiattach_old_enough_qemu(self, min_ver):
|
||||
"""Tests that the driver supports multiattach because qemu<2.10.
|
||||
"""
|
||||
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
|
||||
drvr._set_multiattach_support()
|
||||
self.assertTrue(drvr.capabilities['supports_multiattach'])
|
||||
calls = [mock.call(lv_ver=libvirt_driver.MIN_LIBVIRT_MULTIATTACH),
|
||||
mock.call(hv_ver=(2, 10, 0))]
|
||||
min_ver.assert_has_calls(calls)
|
||||
|
||||
# FIXME(mriedem): This test intermittently fails when run at the same time
|
||||
# as LibvirtConnTestCase, presumably because of shared global state on the
|
||||
# version check.
|
||||
# @mock.patch('nova.virt.libvirt.host.Host.has_min_version',
|
||||
# side_effect=[False, True])
|
||||
# def test_init_host_supports_multiattach_no_support(self,
|
||||
# has_min_version):
|
||||
# """Tests that the driver does not support multiattach because
|
||||
# qemu>=2.10 and libvirt<3.10.
|
||||
# """
|
||||
# drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
|
||||
# drvr._set_multiattach_support()
|
||||
# self.assertFalse(drvr.capabilities['supports_multiattach'])
|
||||
# calls = [mock.call(lv_ver=libvirt_driver.MIN_LIBVIRT_MULTIATTACH),
|
||||
# mock.call(hv_ver=(2, 10, 0))]
|
||||
# has_min_version.assert_has_calls(calls)
|
||||
|
||||
|
||||
vc = fakelibvirt.virConnect
|
||||
|
||||
|
||||
|
@ -254,13 +254,6 @@ PERF_EVENTS_CPU_FLAG_MAPPING = {'cmt': 'cmt',
|
||||
'mbmt': 'mbm_total',
|
||||
}
|
||||
|
||||
|
||||
# libvirt>=3.10 is required for volume multiattach unless qemu<2.10.
|
||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=1378242
|
||||
# for details.
|
||||
MIN_LIBVIRT_MULTIATTACH = (3, 10, 0)
|
||||
|
||||
|
||||
MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION = (4, 4, 0)
|
||||
|
||||
MIN_LIBVIRT_NATIVE_TLS_VERSION = (4, 4, 0)
|
||||
@ -311,9 +304,7 @@ class LibvirtDriver(driver.ComputeDriver):
|
||||
"supports_tagged_attach_interface": True,
|
||||
"supports_tagged_attach_volume": True,
|
||||
"supports_extend_volume": True,
|
||||
# Multiattach support is conditional on qemu and libvirt versions
|
||||
# determined in init_host.
|
||||
"supports_multiattach": False,
|
||||
"supports_multiattach": True,
|
||||
"supports_trusted_certs": True,
|
||||
# Supported image types
|
||||
"supports_image_type_aki": True,
|
||||
@ -653,8 +644,6 @@ class LibvirtDriver(driver.ComputeDriver):
|
||||
|
||||
self._supported_perf_events = self._get_supported_perf_events()
|
||||
|
||||
self._set_multiattach_support()
|
||||
|
||||
self._check_file_backed_memory_support()
|
||||
|
||||
self._check_my_ip()
|
||||
@ -829,20 +818,6 @@ class LibvirtDriver(driver.ComputeDriver):
|
||||
raise exception.InvalidLibvirtGPUConfig(reason=msg)
|
||||
self._create_new_mediated_device(parent, uuid=mdev_uuid)
|
||||
|
||||
def _set_multiattach_support(self):
|
||||
# Check to see if multiattach is supported. Based on bugzilla
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1378242 and related
|
||||
# clones, the shareable flag on a disk device will only work with
|
||||
# qemu<2.10 or libvirt>=3.10. So check those versions here and set
|
||||
# the capability appropriately.
|
||||
if (self._host.has_min_version(lv_ver=MIN_LIBVIRT_MULTIATTACH) or
|
||||
not self._host.has_min_version(hv_ver=(2, 10, 0))):
|
||||
self.capabilities['supports_multiattach'] = True
|
||||
else:
|
||||
LOG.debug('Volume multiattach is not supported based on current '
|
||||
'versions of QEMU and libvirt. QEMU must be less than '
|
||||
'2.10 or libvirt must be greater than or equal to 3.10.')
|
||||
|
||||
def _check_file_backed_memory_support(self):
|
||||
if CONF.libvirt.file_backed_memory:
|
||||
# file_backed_memory is only compatible with qemu/kvm virts
|
||||
|
Loading…
x
Reference in New Issue
Block a user