def test_get_samples(self): self._mock_inspect_instance( virt_inspector.InstanceStats(memory_resident=1.0), virt_inspector.InstanceStats(memory_resident=2.0), virt_inspector.InstanceStats(), virt_inspector.InstanceShutOffException(), ) mgr = manager.AgentManager(0, self.CONF) pollster = instance_stats.MemoryResidentPollster(self.CONF) @mock.patch('ceilometer.compute.pollsters.LOG') def _verify_resident_memory_metering(expected_count, expected_resident_memory_mb, expected_warnings, mylog): samples = list(pollster.get_samples(mgr, {}, [self.instance])) self.assertEqual(expected_count, len(samples)) if expected_count > 0: self.assertEqual(set(['memory.resident']), set([s.name for s in samples])) self.assertEqual(expected_resident_memory_mb, samples[0].volume) else: self.assertEqual(expected_warnings, mylog.warning.call_count) self.assertEqual(0, mylog.exception.call_count) _verify_resident_memory_metering(1, 1.0, 0) _verify_resident_memory_metering(1, 2.0, 0) _verify_resident_memory_metering(0, 0, 1) _verify_resident_memory_metering(0, 0, 0)
def _get_vm_mobj_not_power_off_or_raise(self, instance): vm_mobj = self._ops.get_vm_mobj(instance.id) if vm_mobj is None: raise virt_inspector.InstanceNotFoundException( _('VM %s not found in VMware vSphere') % instance.id) vm_powerState = self._ops.query_vm_property(vm_mobj, 'runtime.powerState') if vm_powerState == "poweredOff": raise virt_inspector.InstanceShutOffException( _('VM %s is poweroff in VMware vSphere') % instance.id) return vm_mobj
def _get_domain_not_shut_off_or_raise(self, instance): instance_name = util.instance_name(instance) domain = self._lookup_by_uuid(instance) state = domain.info()[0] if state == libvirt.VIR_DOMAIN_SHUTOFF: msg = _('Failed to inspect data of instance ' '<name=%(name)s, id=%(id)s>, ' 'domain state is SHUTOFF.') % { 'name': instance_name, 'id': instance.id } raise virt_inspector.InstanceShutOffException(msg) return domain
def test_get_samples(self): next_value = iter(( virt_inspector.MemoryResidentStats(resident=1.0), virt_inspector.MemoryResidentStats(resident=2.0), virt_inspector.NoDataException(), virt_inspector.InstanceShutOffException(), )) def inspect_memory_resident(instance, duration): value = next(next_value) if isinstance(value, virt_inspector.MemoryResidentStats): return value else: raise value self.inspector.inspect_memory_resident = mock.Mock( side_effect=inspect_memory_resident) mgr = manager.AgentManager() pollster = memory.MemoryResidentPollster() @mock.patch('ceilometer.compute.pollsters.memory.LOG') def _verify_resident_memory_metering(expected_count, expected_resident_memory_mb, mylog): samples = list(pollster.get_samples(mgr, {}, [self.instance])) self.assertEqual(expected_count, len(samples)) if expected_count > 0: self.assertEqual(set(['memory.resident']), set([s.name for s in samples])) self.assertEqual(expected_resident_memory_mb, samples[0].volume) else: self.assertEqual(1, mylog.warning.call_count) self.assertEqual(0, mylog.exception.call_count) _verify_resident_memory_metering(1, 1.0) _verify_resident_memory_metering(1, 2.0) _verify_resident_memory_metering(0, 0) _verify_resident_memory_metering(0, 0)
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_stat = self.cache.get(meter, inst_name) if inst_stat is None: userid = (self.instances.get(inst_name) or zvmutils.get_userid(inst_name)) self._update_cache(meter, {inst_name: userid}) inst_stat = self.cache.get(meter, inst_name) if inst_stat is None: msg = _("Can not get vm info for %s") % inst_name raise virt_inspector.InstanceNotFoundException(msg) else: return inst_stat