Fix handling of SXP for devices through device_add -- this solves the
authorEwan Mellor <ewan@xensource.com>
Sun, 29 Oct 2006 19:28:26 +0000 (19:28 +0000)
committerEwan Mellor <ewan@xensource.com>
Sun, 29 Oct 2006 19:28:26 +0000 (19:28 +0000)
Invalid device (uname) problem that breaks just about everything once you've
done xm block-attach.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/python/xen/xend/XendConfig.py

index a911a642fec816d55d288b6389bf442dcbc32a53..7449ec54ebdbc9a1093dd6b4889b2e934eda1e23 100644 (file)
@@ -769,12 +769,10 @@ class XendConfig(dict):
             log.debug("XendConfig.device_add: %s" % str(cfg_xenapi))
 
         if cfg_sxp:
-            config = sxp.child0(cfg_sxp)
-            dev_type = sxp.name(config)
             dev_info = {}
 
             try:
-                for opt, val in config[1:]:
+                for opt, val in cfg_sxp[1:]:
                     dev_info[opt] = val
             except ValueError:
                 pass # SXP has no options for this device
@@ -856,7 +854,7 @@ class XendConfig(dict):
         """
         sxpr = []
         if dev_uuid != None and dev_uuid in self['device']:
-            dev_type, dev_info = self['device']
+            dev_type, dev_info = self['device'][dev_uuid]
 
         if dev_type == None or dev_info == None:
             raise XendConfigError("Required either UUID or device type and "