Merge "replace the "hide_hypervisor_id" to "hw:hide_hypervisor_id"" into stable/train

This commit is contained in:
Zuul 2021-03-12 20:49:47 +00:00 committed by Gerrit Code Review
commit 1d6d4e12b4
4 changed files with 37 additions and 9 deletions

View File

@ -706,10 +706,14 @@ Hiding hypervisor signature
As of the 18.0.0 Rocky release, this is only supported by the libvirt As of the 18.0.0 Rocky release, this is only supported by the libvirt
driver. driver.
Prior to the 21.0.0 Ussuri release, this was called
``hide_hypervisor_id``. An alias is provided to provide backwards
compatibility.
.. code:: console .. code:: console
$ openstack flavor set FLAVOR-NAME \ $ openstack flavor set FLAVOR-NAME \
--property hide_hypervisor_id=VALUE --property hw:hide_hypervisor_id=VALUE
Where: Where:

View File

@ -4445,6 +4445,19 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self._test_get_guest_config_windows_hyperv() self._test_get_guest_config_windows_hyperv()
def test_get_guest_config_windows_hyperv_all_hide_flv(self): def test_get_guest_config_windows_hyperv_all_hide_flv(self):
# Similar to test_get_guest_config_windows_hyperv_feature2
# but also test hiding the HyperV signature with the flavor
# extra_spec "hw:hide_hypervisor_id"
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hw:hide_hypervisor_id": "true"},
expected_attrs={"extra_specs"})
# this works for kvm (the default, tested below) and qemu
self.flags(virt_type='qemu', group='libvirt')
self._test_get_guest_config_windows_hyperv(
flavor=flavor_hide_id, hvid_hidden=True)
def test_get_guest_config_windows_hyperv_all_hide_flv_old(self):
# Similar to test_get_guest_config_windows_hyperv_feature2 # Similar to test_get_guest_config_windows_hyperv_feature2
# but also test hiding the HyperV signature with the flavor # but also test hiding the HyperV signature with the flavor
# extra_spec "hide_hypervisor_id" # extra_spec "hide_hypervisor_id"
@ -4471,10 +4484,10 @@ class LibvirtConnTestCase(test.NoDBTestCase,
def test_get_guest_config_windows_hyperv_all_hide_flv_img(self): def test_get_guest_config_windows_hyperv_all_hide_flv_img(self):
# Similar to test_get_guest_config_windows_hyperv_feature2 # Similar to test_get_guest_config_windows_hyperv_feature2
# but also test hiding the HyperV signature with both the flavor # but also test hiding the HyperV signature with both the flavor
# extra_spec "hide_hypervisor_id" and the image property # extra_spec "hw:hide_hypervisor_id" and the image property
# "img_hide_hypervisor_id" # "img_hide_hypervisor_id"
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "true"}, extra_specs={"hw:hide_hypervisor_id": "true"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
self.flags(virt_type='qemu', group='libvirt') self.flags(virt_type='qemu', group='libvirt')
@ -6518,7 +6531,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
self): self):
# Input to the test: flavor extra_specs # Input to the test: flavor extra_specs
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "true"}, extra_specs={"hw:hide_hypervisor_id": "true"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
self.flags(virt_type='kvm', group='libvirt') self.flags(virt_type='kvm', group='libvirt')
@ -6544,7 +6557,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
# Input to the test: image metadata (true) and flavor # Input to the test: image metadata (true) and flavor
# extra_specs (true) # extra_specs (true)
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "true"}, extra_specs={"hw:hide_hypervisor_id": "true"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
image_meta = objects.ImageMeta.from_dict({ image_meta = objects.ImageMeta.from_dict({
"disk_format": "raw", "disk_format": "raw",
@ -6571,7 +6584,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
# Input to the test: image metadata (false) and flavor # Input to the test: image metadata (false) and flavor
# extra_specs (true) # extra_specs (true)
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "true"}, extra_specs={"hw:hide_hypervisor_id": "true"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
image_meta = objects.ImageMeta.from_dict({ image_meta = objects.ImageMeta.from_dict({
"disk_format": "raw", "disk_format": "raw",
@ -6596,7 +6609,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
# Input to the test: image metadata (true) and flavor # Input to the test: image metadata (true) and flavor
# extra_specs (false) # extra_specs (false)
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "false"}, extra_specs={"hw:hide_hypervisor_id": "false"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
image_meta = objects.ImageMeta.from_dict({ image_meta = objects.ImageMeta.from_dict({
"disk_format": "raw", "disk_format": "raw",
@ -6643,7 +6656,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
def test_get_guest_config_without_hiding_hypervisor_id_flavor_extra_specs( def test_get_guest_config_without_hiding_hypervisor_id_flavor_extra_specs(
self): self):
flavor_hide_id = fake_flavor.fake_flavor_obj(self.context, flavor_hide_id = fake_flavor.fake_flavor_obj(self.context,
extra_specs={"hide_hypervisor_id": "false"}, extra_specs={"hw:hide_hypervisor_id": "false"},
expected_attrs={"extra_specs"}) expected_attrs={"extra_specs"})
self.flags(virt_type='qemu', group='libvirt') self.flags(virt_type='qemu', group='libvirt')

View File

@ -5126,7 +5126,9 @@ class LibvirtDriver(driver.ComputeDriver):
flavor): flavor):
hide_hypervisor_id = (strutils.bool_from_string( hide_hypervisor_id = (strutils.bool_from_string(
flavor.extra_specs.get('hide_hypervisor_id')) or flavor.extra_specs.get('hide_hypervisor_id')) or
image_meta.properties.get('img_hide_hypervisor_id')) strutils.bool_from_string(
flavor.extra_specs.get('hw:hide_hypervisor_id')) or
image_meta.properties.get('img_hide_hypervisor_id'))
if virt_type == "xen": if virt_type == "xen":
# PAE only makes sense in X86 # PAE only makes sense in X86

View File

@ -0,0 +1,9 @@
---
fixes:
- |
Add support for the ``hw:hide_hypervisor_id`` extra spec. This is an
alias for the ``hide_hypervisor_id`` extra spec, which was not
compatible with the ``AggregateInstanceExtraSpecsFilter`` scheduler
filter. See
`bug 1841932 <https://bugs.launchpad.net/nova/+bug/1841932>`_ for more
details.