[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] XendConfig to_sxp optional domain


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Alexey Tumanov <atumanov@xxxxxxxxx>
  • Date: Wed, 13 May 2009 17:35:07 -0700
  • Delivery-date: Wed, 13 May 2009 17:43:30 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Cqezm61h/fvjoMLfGegiEP2F+lpzeS6uIF21YrU9/h97mGqrQv7EdcExWphPdzlSZY mGHb2eH3a+tegyD5JNk7oSbhMfiZlIhQMiUGPu0KsBxTceACbhBjfkhr22Cg6osoCSid KSPDfFYwINCGvhmXgYMan5k3WaLmAP6qgw8HY=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,

I think I came across a tiny bug (please confirm) in to_sxp method of
XendConfig class (tools/python/xen/xend/XendConfig.py):
   def to_sxp(self, domain = None, ignore_devices = False, ignore = [],
              legacy_only = True):
the domain is optional, but the code tries to access its methods in
several places.  I was just wondering whether there's a strong
assumption that domain should be specified, or the extra checks really
are necessary.

Here's a patch.
Thanks,
Alex.

--- a/tools/python/xen/xend/XendConfig.py       Mon May 11 13:52:04 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Wed May 13 17:23:17 2009 -0400
@@ -1035,7 +1035,7 @@ class XendConfig(dict):
        # TODO: domid/dom is the same thing but called differently
        #       depending if it is from xenstore or sxpr.

-        if domain.getDomid() is not None:
+        if domain and domain.getDomid() != None:
            sxpr.append(['domid', domain.getDomid()])

        if not legacy_only:
@@ -1072,12 +1072,13 @@ class XendConfig(dict):
            sxpr.append(['security_label', self['security_label']])

        sxpr.append(['image', self.image_sxpr()])
-        sxpr.append(['status', domain._stateGet()])
-
-        if domain.getDomid() is not None:
-            sxpr.append(['state', self._get_old_state_string()])

        if domain:
+            sxpr.append(['status', domain._stateGet()])
+
+            if domain.getDomid() is not None:
+                sxpr.append(['state', self._get_old_state_string()])
+
            if domain.store_mfn:
                sxpr.append(['store_mfn', domain.store_mfn])
            if domain.console_mfn:

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.