hardware: Use image_meta.id within get_mem_encryption_constraint

This change resolves bug #1928063 by replacing the use of
image_meta.name with image_meta.id as
I55d66c3a6cbd50da90065f4a58f77b5cd29ce9ea should ensure it is always
available. The removal of other references to image_meta.name within
virt.hardware is left for follow ups to keep this change small and
backportable.

Closes-Bug: #1928063
Change-Id: I66299e97bdb5b95e149b1780231a1c1bbdbd9865
This commit is contained in:
Lee Yarwood
2021-05-11 11:37:22 +01:00
parent d5ed968826
commit e98994027f
3 changed files with 7 additions and 15 deletions

View File

@@ -17,7 +17,6 @@ from oslo_utils.fixture import uuidsentinel as uuids
from nova import test from nova import test
from nova.tests.fixtures import libvirt as fakelibvirt from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.api import client
from nova.tests.functional.libvirt import base from nova.tests.functional.libvirt import base
from nova.virt.libvirt.host import SEV_KERNEL_PARAM_FILE from nova.virt.libvirt.host import SEV_KERNEL_PARAM_FILE
@@ -58,12 +57,5 @@ class TestSEVInstanceReboot(base.ServersTestBase):
networks='none' networks='none'
) )
# FIXME(lyarwood): This is bug #1928063, the instance fails to reboot # Hard reboot the server
# due to a NotImplementedError exception being raised when we try to self._reboot_server(server, hard=True)
# access image_meta.name as this isn't stashed in the system_metadata
# of the instance and as a result is not provided in the image_meta
# associated with the instance during this flow.
ex = self.assertRaises(
client.OpenStackApiException,
self._reboot_server, server, hard=True)
self.assertEqual(500, ex.response.status_code)

View File

@@ -5421,7 +5421,7 @@ class MemEncryptionRequestedWithoutUEFITestCase(
for image_prop in ('1', 'true', 'True'): for image_prop in ('1', 'true', 'True'):
self._test_encrypted_memory_support_no_uefi( self._test_encrypted_memory_support_no_uefi(
None, image_prop, None, image_prop,
"hw_mem_encryption property of image %s" % self.image_name) "hw_mem_encryption property of image %s" % self.image_id)
def test_flavor_image_require_encrypted_memory_support_no_uefi(self): def test_flavor_image_require_encrypted_memory_support_no_uefi(self):
for extra_spec in ('1', 'true', 'True'): for extra_spec in ('1', 'true', 'True'):
@@ -5430,7 +5430,7 @@ class MemEncryptionRequestedWithoutUEFITestCase(
extra_spec, image_prop, extra_spec, image_prop,
"hw:mem_encryption extra spec in %s flavor and " "hw:mem_encryption extra spec in %s flavor and "
"hw_mem_encryption property of image %s" "hw_mem_encryption property of image %s"
% (self.flavor_name, self.image_name)) % (self.flavor_name, self.image_id))
class MemEncryptionRequestedWithInvalidMachineTypeTestCase( class MemEncryptionRequestedWithInvalidMachineTypeTestCase(
@@ -5508,7 +5508,7 @@ class MemEncryptionRequiredTestCase(test.NoDBTestCase):
self._test_encrypted_memory_support_required( self._test_encrypted_memory_support_required(
{}, {},
{'hw_mem_encryption': image_prop}, {'hw_mem_encryption': image_prop},
"hw_mem_encryption property of image %s" % self.image_name "hw_mem_encryption property of image %s" % self.image_id
) )
def test_require_encrypted_memory_support_both_required(self): def test_require_encrypted_memory_support_both_required(self):
@@ -5519,7 +5519,7 @@ class MemEncryptionRequiredTestCase(test.NoDBTestCase):
{'hw_mem_encryption': image_prop}, {'hw_mem_encryption': image_prop},
"hw:mem_encryption extra spec in %s flavor and " "hw:mem_encryption extra spec in %s flavor and "
"hw_mem_encryption property of image %s" % "hw_mem_encryption property of image %s" %
(self.flavor_name, self.image_name) (self.flavor_name, self.image_id)
) )

View File

@@ -1313,7 +1313,7 @@ def get_mem_encryption_constraint(
flavor.name) flavor.name)
if image_mem_enc: if image_mem_enc:
requesters.append("hw_mem_encryption property of image %s" % requesters.append("hw_mem_encryption property of image %s" %
image_meta.name) image_meta.id)
_check_mem_encryption_uses_uefi_image(requesters, image_meta) _check_mem_encryption_uses_uefi_image(requesters, image_meta)
_check_mem_encryption_machine_type(image_meta, machine_type) _check_mem_encryption_machine_type(image_meta, machine_type)