vmutils: Adds vnuma_enabled argument to update_vm

A VM can have its virtual NUMA spanning turned on and off.

Partial-Bug: #1663238

Change-Id: Iec9b501880098e69be652bf6c2a90a9864e52a9c
(cherry picked from commit d440793e0b)
This commit is contained in:
Claudiu Belu 2017-02-16 11:44:30 +02:00
parent 3c7d3b732d
commit d1803fa4ce
2 changed files with 14 additions and 5 deletions

View File

@ -294,6 +294,7 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
mock.sentinel.vm_name, mock.sentinel.state)
@ddt.data(
{'vnuma_enabled': mock.sentinel.vnuma_enabled},
{'configuration_root_dir': mock.sentinel.configuration_root_dir},
{'host_shutdown_action': mock.sentinel.shutdown_action},
{})
@ -305,14 +306,15 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
def test_update_vm(self, mock_lookup_vm_check, mock_set_mem,
mock_set_vcpus, mock_modify_virtual_system,
host_shutdown_action=None,
configuration_root_dir=None):
configuration_root_dir=None, vnuma_enabled=None):
mock_vmsettings = mock_lookup_vm_check.return_value
self._vmutils.update_vm(
mock.sentinel.vm_name, mock.sentinel.memory_mb,
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,
host_shutdown_action=host_shutdown_action)
host_shutdown_action=host_shutdown_action,
vnuma_enabled=vnuma_enabled)
mock_lookup_vm_check.assert_called_once_with(mock.sentinel.vm_name)
mock_set_mem.assert_called_once_with(
@ -336,7 +338,10 @@ class VMUtilsTestCase(test_base.OsWinBaseTestCase):
if host_shutdown_action:
self.assertEqual(host_shutdown_action,
mock_vmsettings.AutomaticShutdownAction)
if configuration_root_dir or host_shutdown_action:
if vnuma_enabled:
self.assertEqual(vnuma_enabled, mock_vmsettings.VirtualNumaEnabled)
if configuration_root_dir or host_shutdown_action or vnuma_enabled:
mock_modify_virtual_system.assert_called_once_with(
mock_vmsettings)
else:

View File

@ -286,7 +286,7 @@ class VMUtils(baseutils.BaseUtilsVirt):
def update_vm(self, vm_name, memory_mb, memory_per_numa_node, vcpus_num,
vcpus_per_numa_node, limit_cpu_features, dynamic_mem_ratio,
configuration_root_dir=None, snapshot_dir=None,
host_shutdown_action=None,
host_shutdown_action=None, vnuma_enabled=None,
is_planned_vm=False):
vmsetting = self._lookup_vm_check(vm_name)
@ -300,13 +300,17 @@ class VMUtils(baseutils.BaseUtilsVirt):
vmsetting.SnapshotDataRoot = configuration_root_dir
vmsetting.SuspendDataRoot = configuration_root_dir
vmsetting.SwapFileDataRoot = configuration_root_dir
if vnuma_enabled is not None:
vmsetting.VirtualNumaEnabled = vnuma_enabled
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 host_shutdown_action
update_needed = (configuration_root_dir or host_shutdown_action or
vnuma_enabled is not None)
if update_needed:
self._modify_virtual_system(vmsetting)