vmutils: set all *DataRoot paths to the same value
In order to maintain consistency with create_vm, update_vm should also set the *DataRoot paths to the same given value. Furthermore, this will be required for planned VMs, in order to prevent having instances running on different compute nodes and different storages to have some of the *DataRoot paths pointing to the old compute node. Partial-Bug: #1663238 Change-Id: Ic9248f44de6ff097b8080a80fd3212eeef6712f6
This commit is contained in:
parent
bf89f0bab7
commit
133271f250
|
@ -304,7 +304,6 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
|
||||
@ddt.data(
|
||||
{'configuration_root_dir': mock.sentinel.configuration_root_dir},
|
||||
{'snapshot_dir': mock.sentinel.snapshot_dir, 'is_planned_vm': True},
|
||||
{'is_planned_vm': True},
|
||||
{'host_shutdown_action': mock.sentinel.shutdown_action},
|
||||
{})
|
||||
|
@ -319,7 +318,7 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock_modify_virtual_system,
|
||||
host_shutdown_action=None,
|
||||
configuration_root_dir=None,
|
||||
snapshot_dir=None, is_planned_vm=False):
|
||||
is_planned_vm=False):
|
||||
mock_vmsettings = mock_lookup_vm_check.return_value
|
||||
virtual_system_type = mock_get_virtual_system_type.return_value
|
||||
self._vmutils.update_vm(
|
||||
|
@ -327,7 +326,6 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock.sentinel.memory_per_numa, mock.sentinel.vcpus_num,
|
||||
mock.sentinel.vcpus_per_numa, mock.sentinel.limit_cpu_features,
|
||||
mock.sentinel.dynamic_mem_ratio, configuration_root_dir,
|
||||
snapshot_dir,
|
||||
host_shutdown_action=host_shutdown_action,
|
||||
is_planned_vm=is_planned_vm)
|
||||
|
||||
|
@ -340,7 +338,22 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
|
|||
mock_set_vcpus.assert_called_once_with(
|
||||
mock_vmsettings, mock.sentinel.vcpus_num,
|
||||
mock.sentinel.vcpus_per_numa, mock.sentinel.limit_cpu_features)
|
||||
if configuration_root_dir or snapshot_dir or host_shutdown_action:
|
||||
|
||||
if configuration_root_dir:
|
||||
self.assertEqual(configuration_root_dir,
|
||||
mock_vmsettings.ConfigurationDataRoot)
|
||||
self.assertEqual(configuration_root_dir,
|
||||
mock_vmsettings.LogDataRoot)
|
||||
self.assertEqual(configuration_root_dir,
|
||||
mock_vmsettings.SnapshotDataRoot)
|
||||
self.assertEqual(configuration_root_dir,
|
||||
mock_vmsettings.SuspendDataRoot)
|
||||
self.assertEqual(configuration_root_dir,
|
||||
mock_vmsettings.SwapFileDataRoot)
|
||||
if host_shutdown_action:
|
||||
self.assertEqual(host_shutdown_action,
|
||||
mock_vmsettings.AutomaticShutdownAction)
|
||||
if configuration_root_dir or host_shutdown_action:
|
||||
mock_modify_virtual_system.assert_called_once_with(
|
||||
mock_vmsettings)
|
||||
else:
|
||||
|
|
|
@ -292,16 +292,20 @@ class VMUtils(baseutils.BaseUtilsVirt):
|
|||
if host_shutdown_action:
|
||||
vmsetting.AutomaticShutdownAction = host_shutdown_action
|
||||
if configuration_root_dir:
|
||||
# Created VMs must have their *DataRoot paths in the same location
|
||||
# as the VM's path.
|
||||
vmsetting.ConfigurationDataRoot = configuration_root_dir
|
||||
if snapshot_dir:
|
||||
vmsetting.SnapshotDataRoot = snapshot_dir
|
||||
vmsetting.LogDataRoot = configuration_root_dir
|
||||
vmsetting.SnapshotDataRoot = configuration_root_dir
|
||||
vmsetting.SuspendDataRoot = configuration_root_dir
|
||||
vmsetting.SwapFileDataRoot = configuration_root_dir
|
||||
|
||||
self._set_vm_memory(vmsetting, memory_mb, memory_per_numa_node,
|
||||
dynamic_mem_ratio)
|
||||
self._set_vm_vcpus(vmsetting, vcpus_num, vcpus_per_numa_node,
|
||||
limit_cpu_features)
|
||||
|
||||
update_needed = (configuration_root_dir or snapshot_dir or
|
||||
host_shutdown_action)
|
||||
update_needed = configuration_root_dir or host_shutdown_action
|
||||
if update_needed:
|
||||
self._modify_virtual_system(vmsetting)
|
||||
|
||||
|
|
Loading…
Reference in New Issue