fix zvm driver.get_info
zvm driver.get_info was affected by the change: https://review.openstack.org/#/c/471146/ In nova master, nova.virt.hardware.InstanceInfo should pass power state when init the object. Change-Id: I1adec39c943518f3f1bd791ad877e8abdf1f8c11
This commit is contained in:
parent
5132925953
commit
f47a2f73d8
|
@ -214,50 +214,22 @@ class ZVMDriverTestCases(test.NoDBTestCase):
|
|||
self.driver.list_instances()
|
||||
guest_list.assert_called_once_with()
|
||||
|
||||
@mock.patch.object(sdkapi.SDKAPI, 'guest_get_info')
|
||||
@mock.patch.object(sdkapi.SDKAPI, 'guest_get_power_state')
|
||||
@mock.patch.object(zvmutils, 'mapping_power_stat')
|
||||
def test_get_instance_info_paused(self, mapping_power_stat,
|
||||
guest_get_info):
|
||||
guest_get_info.return_value = {'power_state': 'on',
|
||||
'max_mem_kb': 2097152,
|
||||
'mem_kb': 44,
|
||||
'num_cpu': 2,
|
||||
'cpu_time_us': 796000,
|
||||
}
|
||||
mapping_power_stat.return_value = power_state.RUNNING
|
||||
fake_inst = fake_instance.fake_instance_obj(self._context,
|
||||
name='fake', power_state=power_state.PAUSED,
|
||||
memory_mb='1024',
|
||||
vcpus='4')
|
||||
inst_info = self.driver._get_instance_info(fake_inst)
|
||||
mapping_power_stat.assert_called_once_with('on')
|
||||
self.assertEqual(inst_info.state, power_state.PAUSED)
|
||||
self.assertEqual(inst_info.mem_kb, 44)
|
||||
|
||||
@mock.patch.object(sdkapi.SDKAPI, 'guest_get_info')
|
||||
@mock.patch.object(zvmutils, 'mapping_power_stat')
|
||||
def test_get_instance_info_off(self, mapping_power_stat, guest_get_info):
|
||||
guest_get_info.return_value = {'power_state': 'off',
|
||||
'max_mem_kb': 2097152,
|
||||
'mem_kb': 44,
|
||||
'num_cpu': 2,
|
||||
'cpu_time_us': 796000,
|
||||
}
|
||||
def test_get_instance_info_off(self, mapping_power_stat, get_power_state):
|
||||
get_power_state.return_value = 'off'
|
||||
mapping_power_stat.return_value = power_state.SHUTDOWN
|
||||
fake_inst = fake_instance.fake_instance_obj(self._context,
|
||||
name='fake', power_state=power_state.PAUSED,
|
||||
name='fake', power_state=power_state.SHUTDOWN,
|
||||
memory_mb='1024',
|
||||
vcpus='4')
|
||||
inst_info = self.driver._get_instance_info(fake_inst)
|
||||
mapping_power_stat.assert_called_once_with('off')
|
||||
self.assertEqual(inst_info.state, power_state.SHUTDOWN)
|
||||
self.assertEqual(inst_info.mem_kb, 44)
|
||||
|
||||
@mock.patch.object(driver.ZVMDriver, '_get_instance_info')
|
||||
def test_get_info(self, _get_instance_info):
|
||||
_fake_inst_info = hardware.InstanceInfo(state=0x01, mem_kb=131072,
|
||||
num_cpu=4, cpu_time_ns=330528353,
|
||||
max_mem_kb=1048576)
|
||||
_fake_inst_info = hardware.InstanceInfo(state=0x01)
|
||||
_get_instance_info.return_value = _fake_inst_info
|
||||
fake_inst = fake_instance.fake_instance_obj(self._context,
|
||||
name='fake', power_state=power_state.RUNNING,
|
||||
|
@ -265,10 +237,6 @@ class ZVMDriverTestCases(test.NoDBTestCase):
|
|||
vcpus='4')
|
||||
inst_info = self.driver.get_info(fake_inst)
|
||||
self.assertEqual(0x01, inst_info.state)
|
||||
self.assertEqual(131072, inst_info.mem_kb)
|
||||
self.assertEqual(4, inst_info.num_cpu)
|
||||
self.assertEqual(330528353, inst_info.cpu_time_ns)
|
||||
self.assertEqual(1048576, inst_info.max_mem_kb)
|
||||
|
||||
@mock.patch.object(driver.ZVMDriver, '_get_instance_info')
|
||||
def test_get_info_instance_not_exist_error(self, _get_instance_info):
|
||||
|
|
|
@ -18,7 +18,6 @@ import eventlet
|
|||
import six
|
||||
import time
|
||||
|
||||
from nova.compute import power_state
|
||||
from nova import exception as nova_exception
|
||||
from nova.i18n import _
|
||||
from nova.image import api as image_api
|
||||
|
@ -95,36 +94,15 @@ class ZVMDriver(driver.ComputeDriver):
|
|||
pass
|
||||
|
||||
def _get_instance_info(self, instance):
|
||||
inst_name = instance['name']
|
||||
vm_info = self._sdk_api.guest_get_info(inst_name)
|
||||
_instance_info = hardware.InstanceInfo()
|
||||
power_stat = self._sdk_api.guest_get_power_state(instance['name'])
|
||||
power_stat = zvmutils.mapping_power_stat(power_stat)
|
||||
|
||||
power_stat = zvmutils.mapping_power_stat(vm_info['power_state'])
|
||||
if ((power_stat == power_state.RUNNING) and
|
||||
(instance['power_state'] == power_state.PAUSED)):
|
||||
# return paused state only previous power state is paused
|
||||
_instance_info.state = power_state.PAUSED
|
||||
else:
|
||||
_instance_info.state = power_stat
|
||||
|
||||
_instance_info.max_mem_kb = vm_info['max_mem_kb']
|
||||
_instance_info.mem_kb = vm_info['mem_kb']
|
||||
_instance_info.num_cpu = vm_info['num_cpu']
|
||||
_instance_info.cpu_time_ns = vm_info['cpu_time_us'] * 1000
|
||||
_instance_info = hardware.InstanceInfo(power_stat)
|
||||
|
||||
return _instance_info
|
||||
|
||||
def get_info(self, instance):
|
||||
"""Get the current status of an instance, by name (not ID!)
|
||||
|
||||
Returns a dict containing:
|
||||
:state: the running state, one of the power_state codes
|
||||
:max_mem: (int) the maximum memory in KBytes allowed
|
||||
:mem: (int) the memory in KBytes used by the domain
|
||||
:num_cpu: (int) the number of virtual CPUs for the domain
|
||||
:cpu_time: (int) the CPU time used in nanoseconds
|
||||
|
||||
"""
|
||||
"""Get the current status of an instance."""
|
||||
inst_name = instance['name']
|
||||
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue