Merge "zvm inspector can not get instance data in shutdown stat"
This commit is contained in:
commit
2f95254b70
|
@ -14,6 +14,7 @@
|
|||
|
||||
|
||||
from ceilometer.compute.virt import inspector as virt_inspector
|
||||
from ceilometer.i18n import _
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
from oslo_utils import timeutils
|
||||
|
@ -138,9 +139,15 @@ class ZVMInspector(virt_inspector.Inspector):
|
|||
self._update_cache(meter)
|
||||
|
||||
def _get_inst_stat(self, meter, instance):
|
||||
inst_name = zvmutils.get_inst_name(instance)
|
||||
# zvm inspector can not get instance info in shutdown stat
|
||||
if zvmutils.get_inst_power_state(instance) == 0x04:
|
||||
msg = _("Can not get vm info in shutdown state "
|
||||
"for %s") % inst_name
|
||||
raise virt_inspector.InstanceShutOffException(msg)
|
||||
|
||||
self._check_expiration_and_update_cache(meter)
|
||||
|
||||
inst_name = zvmutils.get_inst_name(instance)
|
||||
inst_stat = self.cache.get(meter, inst_name)
|
||||
|
||||
if inst_stat is None:
|
||||
|
@ -150,7 +157,8 @@ class ZVMInspector(virt_inspector.Inspector):
|
|||
inst_stat = self.cache.get(meter, inst_name)
|
||||
|
||||
if inst_stat is None:
|
||||
raise virt_inspector.InstanceNotFoundException()
|
||||
msg = _("Can not get vm info for %s") % inst_name
|
||||
raise virt_inspector.InstanceNotFoundException(msg)
|
||||
else:
|
||||
return inst_stat
|
||||
|
||||
|
|
|
@ -235,11 +235,6 @@ def translate_xcat_resp(rawdata, dirt):
|
|||
data[k] = ls[(ls.find(dirt[k]) + len(dirt[k])):].strip(' "')
|
||||
break
|
||||
|
||||
if data == {}:
|
||||
msg = _("No value matched with keywords. Raw Data: %(raw)s; "
|
||||
"Keywords: %(kws)s") % {'raw': rawdata, 'kws': str(dirt)}
|
||||
raise ZVMException(msg)
|
||||
|
||||
return data
|
||||
|
||||
|
||||
|
@ -375,7 +370,8 @@ def image_performance_query(zhcp_node, inst_list):
|
|||
rpi_list = raw_data.split("".join((zhcp_node, ": \n")))
|
||||
for rpi in rpi_list:
|
||||
pi = translate_xcat_resp(rpi, ipq_kws)
|
||||
pi_dict[pi['userid']] = pi
|
||||
if pi.get('userid') is not None:
|
||||
pi_dict[pi['userid']] = pi
|
||||
|
||||
return pi_dict
|
||||
|
||||
|
@ -384,6 +380,10 @@ def get_inst_name(instance):
|
|||
return getattr(instance, 'OS-EXT-SRV-ATTR:instance_name', None)
|
||||
|
||||
|
||||
def get_inst_power_state(instance):
|
||||
return getattr(instance, 'OS-EXT-STS:power_state', None)
|
||||
|
||||
|
||||
def virutal_network_vswitch_query_iuo_stats(zhcp_node):
|
||||
cmd = ('smcli Virtual_Network_Vswitch_Query_IUO_Stats -T "%s" '
|
||||
'-k "switch_name=*"' % zhcp_node)
|
||||
|
|
|
@ -131,6 +131,19 @@ class TestZVMInspector(base.BaseTestCase):
|
|||
check_update.assert_called_once_with('cpumem')
|
||||
update.assert_called_once_with('cpumem', {'inst1': 'INST1'})
|
||||
|
||||
@mock.patch.object(zvmutils, 'get_inst_power_state')
|
||||
@mock.patch.object(zvmutils, 'get_inst_name')
|
||||
def test_get_inst_stat_shutoff(self, get_name, get_power_stat):
|
||||
get_name.return_value = 'inst1'
|
||||
get_power_stat.return_value = 0x04
|
||||
self.inspector.instances = {'inst1': 'INST1'}
|
||||
|
||||
self.assertRaises(virt_inspertor.InstanceShutOffException,
|
||||
self.inspector._get_inst_stat, 'cpumem',
|
||||
{'inst1': 'INST1'})
|
||||
get_name.assert_called_once_with({'inst1': 'INST1'})
|
||||
get_power_stat.assert_called_once_with({'inst1': 'INST1'})
|
||||
|
||||
@mock.patch("ceilometer_zvm.compute.virt.zvm.inspector.ZVMInspector."
|
||||
"_update_cache")
|
||||
@mock.patch.object(zvmutils, 'get_userid')
|
||||
|
|
|
@ -189,13 +189,6 @@ class TestZVMUtils(base.BaseTestCase):
|
|||
self.assertEqual(exp_data,
|
||||
zvmutils.image_performance_query('zhcp', inst_list))
|
||||
|
||||
@mock.patch.object(zvmutils, 'xdsh')
|
||||
def test_image_performance_query_invalid_xdsh_resp(self, dsh):
|
||||
dsh.return_value = {'data': 'invalid data'}
|
||||
inst_list = {'inst1': 'INST1', 'inst2': 'INST2'}
|
||||
self.assertRaises(zvmutils.ZVMException,
|
||||
zvmutils.image_performance_query, 'zhcp', inst_list)
|
||||
|
||||
@mock.patch.object(zvmutils, 'xdsh')
|
||||
def test_virutal_network_vswitch_query_iuo_stats(self, dsh):
|
||||
vsw_data = ['zhcp11: vswitch count: 2\n'
|
||||
|
|
Loading…
Reference in New Issue