vmutils: Adds the ability to modify the VM's chassis asset tag
The Msvm_VirtualSystemSettingData object associated with a VM has a
field named "ChassisAssetTag". The value set in this field is reflected
in Linux VMs in /sys/class/dmi/id/chassis-asset-tag. This value is
checked by cloud-init in order to figure out if it is currently running
inside an OpenStack VM.
The verification above has been introduced in cloud-init [1] in order to
avoid costly metadata probes that aren't needed in non-OpenStack VMs.
Setting the ChassisAssetTag will allow us to pass these checks.
Partially-Fixes: #1895976
[1] 1efa8a0a03
Change-Id: I50dd761b3df9f2d243ca295f02d20422f6af965e
This commit is contained in:
parent
0d81aded4d
commit
78414e7160
|
@ -329,6 +329,7 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
{'vnuma_enabled': mock.sentinel.vnuma_enabled},
|
||||
{'configuration_root_dir': mock.sentinel.configuration_root_dir},
|
||||
{'host_shutdown_action': mock.sentinel.shutdown_action},
|
||||
{'chassis_asset_tag': mock.sentinel.chassis_asset_tag2},
|
||||
{})
|
||||
@ddt.unpack
|
||||
@mock.patch.object(vmutils.VMUtils, '_modify_virtual_system')
|
||||
|
@ -341,7 +342,8 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock_set_mem, mock_set_vcpus,
|
||||
mock_modify_virtual_system,
|
||||
host_shutdown_action=None,
|
||||
configuration_root_dir=None, vnuma_enabled=None):
|
||||
configuration_root_dir=None, vnuma_enabled=None,
|
||||
chassis_asset_tag=None):
|
||||
mock_vmsettings = mock_lookup_vm_check.return_value
|
||||
self._vmutils.update_vm(
|
||||
mock.sentinel.vm_name, mock.sentinel.memory_mb,
|
||||
|
@ -350,7 +352,8 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock.sentinel.dynamic_mem_ratio, configuration_root_dir,
|
||||
host_shutdown_action=host_shutdown_action,
|
||||
vnuma_enabled=vnuma_enabled,
|
||||
snapshot_type=mock.sentinel.snap_type)
|
||||
snapshot_type=mock.sentinel.snap_type,
|
||||
chassis_asset_tag=chassis_asset_tag)
|
||||
|
||||
mock_lookup_vm_check.assert_called_once_with(mock.sentinel.vm_name,
|
||||
for_update=True)
|
||||
|
@ -378,6 +381,10 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
if vnuma_enabled:
|
||||
self.assertEqual(vnuma_enabled, mock_vmsettings.VirtualNumaEnabled)
|
||||
|
||||
if chassis_asset_tag:
|
||||
self.assertEqual(chassis_asset_tag,
|
||||
mock_vmsettings.ChassisAssetTag)
|
||||
|
||||
mock_set_vm_snap_type.assert_called_once_with(
|
||||
mock_vmsettings, mock.sentinel.snap_type)
|
||||
|
||||
|
|
|
@ -314,7 +314,8 @@ class VMUtils(baseutils.BaseUtilsVirt):
|
|||
configuration_root_dir=None, snapshot_dir=None,
|
||||
host_shutdown_action=None, vnuma_enabled=None,
|
||||
snapshot_type=None,
|
||||
is_planned_vm=False):
|
||||
is_planned_vm=False,
|
||||
chassis_asset_tag=None):
|
||||
vmsetting = self._lookup_vm_check(vm_name, for_update=True)
|
||||
|
||||
if host_shutdown_action:
|
||||
|
@ -338,6 +339,9 @@ class VMUtils(baseutils.BaseUtilsVirt):
|
|||
if snapshot_type:
|
||||
self._set_vm_snapshot_type(vmsetting, snapshot_type)
|
||||
|
||||
if chassis_asset_tag:
|
||||
vmsetting.ChassisAssetTag = chassis_asset_tag
|
||||
|
||||
self._modify_virtual_system(vmsetting)
|
||||
|
||||
def check_admin_permissions(self):
|
||||
|
|
Loading…
Reference in New Issue