[libvirt] domain.info() sometimes returns state zero for running machines

Andreas Sommer AndiDog at web.de
Wed Jun 17 15:09:31 UTC 2009


I found that virt-manager 0.7.0 does the following:

----------------------------------------------------------------------------------------
def _normalize_status(self, status):
        if status == libvirt.VIR_DOMAIN_NOSTATE:
            return libvirt.VIR_DOMAIN_RUNNING
        elif status == libvirt.VIR_DOMAIN_BLOCKED:
            return libvirt.VIR_DOMAIN_RUNNING
        return status

def _update_status(self, status=None):
        if status == None:
            info = self.vm.info()
            status = info[0]
        status = self._normalize_status(status)

        if status != self.lastStatus:
            if self.lastStatus in [ libvirt.VIR_DOMAIN_SHUTDOWN,
                                    libvirt.VIR_DOMAIN_SHUTOFF,
                                    libvirt.VIR_DOMAIN_CRASHED ]:
                # Domain just started. Invalidate inactive xml
                self._orig_inactive_xml = None
            self.lastStatus = status
            self.emit("status-changed", status)
----------------------------------------------------------------------------------------

VIR_DOMAIN_NOSTATE doesn't make much sense in that case?!


Andreas Sommer wrote:
> I'm using Xen-3.2-1 on Debian 5.0.1-lenny and retrieve information 
> about running domains using
>
> domain.info()[0]
>
> The domain object is retrieved via connection.lookupByUUIDString(...) 
> and stored as a variable called "domain". Usually the running domains 
> have the state 1 (VIR_DOMAIN_RUNNING) or 2 (VIR_DOMAIN_BLOCKED), but 
> sometimes it happens that 0 (VIR_DOMAIN_NOSTATE) is returned.
> Why does that happen? I don't think it is an error because then it 
> would've raised an exception...
>
> Regards
> Andreas
>
> -- 
> Libvir-list mailing list
> Libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>




More information about the libvir-list mailing list