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
(cherry picked from commit 133271f250
)
This commit is contained in:
parent
ddab37f8e6
commit
0795dc8818
|
@ -305,7 +305,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},
|
||||
{})
|
||||
|
@ -320,7 +319,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(
|
||||
|
@ -328,7 +327,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)
|
||||
|
||||
|
@ -341,7 +339,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