From: Alastair Tse Date: Thu, 9 Nov 2006 12:38:12 +0000 (+0000) Subject: [XEND] Fix domain_lookup_nr to check managed_domains too. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15567^2~43 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d3b8d73b44dcd29a12e9c49f99e5b790e974e494;p=xen.git [XEND] Fix domain_lookup_nr to check managed_domains too. Bug introduced when moving managed domains out of self.domains caused domain_lookup_nr ignoring managed domains. Signed-off-by: Alastair Tse --- diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 2877d40b23..71a46e18b8 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -57,10 +57,10 @@ DOM0_ID = 0 class XendDomain: """Index of all domains. Singleton. - @ivar domains: map of domains indexed by UUID Strings + @ivar domains: map of domains indexed by domid @type domains: dict of XendDomainInfo - @ivar managed_domains: uuid of domains that are managed by Xend - @type managed_domains: list of (uuids, dom_name) + @ivar managed_domains: domains that are not running and managed by Xend + @type managed_domains: dict of XendDomainInfo indexed by uuid @ivar domains_lock: lock that must be held when manipulating self.domains @type domains_lock: threaading.RLock @ivar _allow_new_domains: Flag to set that allows creating of new domains. @@ -484,6 +484,11 @@ class XendDomain: if match: return match[0] + match = [dom for dom in self.managed_domains.values() \ + if dom.getName() == domid] + if match: + return match[0] + # lookup by id try: if int(domid) in self.domains: @@ -491,6 +496,16 @@ class XendDomain: except ValueError: pass + # lookup by uuid for running domains + match = [dom for dom in self.domains.values() \ + if dom.get_uuid() == domid] + if match: + return match[0] + + # lookup by uuid for inactive managed domains + if domid in self.managed_domains: + return self.managed_domains[domid] + return None finally: self.domains_lock.release()