Esempio n. 1
0
    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)
Esempio n. 2
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
Esempio n. 3
0
    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
Esempio n. 4
0
    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)
Esempio n. 5
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