Merge "Revert "[libvirt] Filter hypervisor_type by virt_type"" into stable/stein

This commit is contained in:
Zuul 2019-08-07 16:11:41 +00:00 committed by Gerrit Code Review
commit 70c611dcfd
2 changed files with 4 additions and 26 deletions

View File

@ -16302,8 +16302,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self.assertEqual(6, drvr._get_vcpu_used())
mock_list.assert_called_with(only_guests=True, only_running=True)
def _test_get_instance_capabilities(self, want):
'''Base test for 'get_capabilities' function. '''
def test_get_instance_capabilities(self):
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
def get_host_capabilities_stub(self):
@ -16334,28 +16333,12 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self.stub_out('nova.virt.libvirt.host.Host.get_capabilities',
get_host_capabilities_stub)
want = [(fields.Architecture.X86_64, 'kvm', 'hvm'),
(fields.Architecture.X86_64, 'qemu', 'hvm'),
(fields.Architecture.I686, 'kvm', 'hvm')]
got = drvr._get_instance_capabilities()
self.assertEqual(want, got)
def test_get_instance_capabilities_kvm(self):
self.flags(virt_type='kvm', group='libvirt')
# Because virt_type is set to kvm, we get only
# capabilities where the hypervisor_type is kvm
want = [(fields.Architecture.X86_64, 'kvm', 'hvm'),
(fields.Architecture.I686, 'kvm', 'hvm')]
self._test_get_instance_capabilities(want)
def test_get_instance_capabilities_qemu(self):
self.flags(virt_type='qemu', group='libvirt')
# Because virt_type is set to qemu, we get only
# capabilities where the hypervisor_type is qemu
want = [(fields.Architecture.X86_64, 'qemu', 'hvm')]
self._test_get_instance_capabilities(want)
def test_set_cache_mode(self):
self.flags(disk_cachemodes=['file=directsync'], group='libvirt')
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)

View File

@ -5942,17 +5942,12 @@ class LibvirtDriver(driver.ComputeDriver):
hypervisor is capable of hosting. Each tuple consists
of the triplet (arch, hypervisor_type, vm_mode).
Supported hypervisor_type is filtered by virt_type,
a parameter set by operators via `nova.conf`.
:returns: List of tuples describing instance capabilities
"""
caps = self._host.get_capabilities()
instance_caps = list()
for g in caps.guests:
for dt in g.domtype:
if dt != CONF.libvirt.virt_type:
continue
try:
instance_cap = (
fields.Architecture.canonicalize(g.arch),