summaryrefslogtreecommitdiff
path: root/nova/objects/image_meta.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/objects/image_meta.py')
-rw-r--r--nova/objects/image_meta.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/nova/objects/image_meta.py b/nova/objects/image_meta.py
index 853e1715e7..7927ad2575 100644
--- a/nova/objects/image_meta.py
+++ b/nova/objects/image_meta.py
@@ -187,14 +187,28 @@ class ImageMetaProps(base.NovaObject):
# Version 1.28: Added 'socket' to 'hw_pci_numa_affinity_policy'
# Version 1.29: Added 'hw_input_bus' field
# Version 1.30: Added 'bochs' as an option to 'hw_video_model'
+ # Version 1.31: Added 'hw_emulation_architecture' field
+ # Version 1.32: Added 'hw_ephemeral_encryption' and
+ # 'hw_ephemeral_encryption_format' fields
+ # Version 1.33: Added 'hw_locked_memory' field
+ # Version 1.34: Added 'hw_viommu_model' field
# NOTE(efried): When bumping this version, the version of
# ImageMetaPropsPayload must also be bumped. See its docstring for details.
- VERSION = '1.30'
+ VERSION = '1.34'
def obj_make_compatible(self, primitive, target_version):
super(ImageMetaProps, self).obj_make_compatible(primitive,
target_version)
target_version = versionutils.convert_version_to_tuple(target_version)
+ if target_version < (1, 34):
+ primitive.pop('hw_viommu_model', None)
+ if target_version < (1, 33):
+ primitive.pop('hw_locked_memory', None)
+ if target_version < (1, 32):
+ primitive.pop('hw_ephemeral_encryption', None)
+ primitive.pop('hw_ephemeral_encryption_format', None)
+ if target_version < (1, 31):
+ primitive.pop('hw_emulation_architecture', None)
if target_version < (1, 30):
video = primitive.get('hw_video_model', None)
if video == fields.VideoModel.BOCHS:
@@ -294,6 +308,10 @@ class ImageMetaProps(base.NovaObject):
# name of guest hardware architecture eg i686, x86_64, ppc64
'hw_architecture': fields.ArchitectureField(),
+ # hw_architecture field is leveraged for checks against physical nodes
+ # name of desired emulation architecture eg i686, x86_64, ppc64
+ 'hw_emulation_architecture': fields.ArchitectureField(),
+
# used to decide to expand root disk partition and fs to full size of
# root disk
'hw_auto_disk_config': fields.StringField(),
@@ -356,6 +374,10 @@ class ImageMetaProps(base.NovaObject):
# image with a network boot image
'hw_ipxe_boot': fields.FlexibleBooleanField(),
+ # string - make sure ``locked`` element is present in the
+ # ``memoryBacking``.
+ 'hw_locked_memory': fields.FlexibleBooleanField(),
+
# There are sooooooooooo many possible machine types in
# QEMU - several new ones with each new release - that it
# is not practical to enumerate them all. So we use a free
@@ -427,6 +449,9 @@ class ImageMetaProps(base.NovaObject):
# name of a NIC device model eg virtio, e1000, rtl8139
'hw_vif_model': fields.VIFModelField(),
+ # name of IOMMU device model eg virtio, intel, smmuv3, or auto
+ 'hw_viommu_model': fields.VIOMMUModelField(),
+
# "xen" vs "hvm"
'hw_vm_mode': fields.VMModeField(),
@@ -442,6 +467,12 @@ class ImageMetaProps(base.NovaObject):
# version of emulated TPM to use.
'hw_tpm_version': fields.TPMVersionField(),
+ # boolean - if true will enable ephemeral encryption for instance
+ 'hw_ephemeral_encryption': fields.FlexibleBooleanField(),
+ # encryption format to be used when ephemeral encryption is enabled
+ 'hw_ephemeral_encryption_format':
+ fields.BlockDeviceEncryptionFormatTypeField(),
+
# if true download using bittorrent
'img_bittorrent': fields.FlexibleBooleanField(),