Esempio n. 1
0
    def list_instances_detail(self, context):
        """Return a list of InstanceInfo for all registered VMs"""
        LOG.debug("list_instances_detail")

        info_list = []
        bmms = db.bmm_get_all_by_instance_id_not_null(context)
        for bmm in bmms:
            instance = db.instance_get(context, bmm["instance_id"])
            status = PowerManager(bmm["ipmi_ip"]).status()
            if status == "off":
                inst_power_state = power_state.SHUTOFF

                if instance["vm_state"] == vm_states.ACTIVE:
                    db.instance_update(context, instance["id"],
                                       {"vm_state": vm_states.STOPPED})
            else:
                inst_power_state = power_state.RUNNING

                if instance["vm_state"] == vm_states.STOPPED:
                    db.instance_update(context, instance["id"],
                                       {"vm_state": vm_states.ACTIVE})

            info_list.append(
                driver.InstanceInfo(
                    self._instance_id_to_name(bmm["instance_id"]),
                    inst_power_state))

        return info_list
Esempio n. 2
0
    def list_instances_detail(self):
        # TODO(justinsb): This is a terrible implementation (1+N)
        instance_infos = []
        for instance_name in self.list_instances():
            info = self.get_info(instance_name)

            state = info['state']

            instance_info = driver.InstanceInfo(instance_name, state)
            instance_infos.append(instance_info)

        return instance_infos
Esempio n. 3
0
    def list_instances_detail(self):
        """List VM instances, returning InstanceInfo objects."""
        instance_infos = []
        for vm_ref in self._session.get_xenapi().VM.get_all():
            vm_rec = self._session.get_xenapi().VM.get_record(vm_ref)
            if not vm_rec["is_a_template"] and not vm_rec["is_control_domain"]:
                name = vm_rec["name_label"]

                # TODO(justinsb): This a roundabout way to map the state
                openstack_format = VMHelper.compile_info(vm_rec)
                state = openstack_format['state']

                instance_info = driver.InstanceInfo(name, state)
                instance_infos.append(instance_info)
        return instance_infos
Esempio n. 4
0
 def _map_to_instance_info(self, instance):
     instance = utils.check_isinstance(instance, FakeInstance)
     info = driver.InstanceInfo(instance.name, instance.state)
     return info
Esempio n. 5
0
 def _map_to_instance_info(self, domain_name):
     """Gets info from a virsh domain object into an InstanceInfo"""
     _domain_info = self._conn.get_domain_info(domain_name)
     state, _max_mem, _mem, _num_cpu, _cpu_time = _domain_info
     name = domain_name
     return driver.InstanceInfo(name, state)