- Boot Manager cannot marshal None
authorMark Huang <mlhuang@cs.princeton.edu>
Mon, 6 Nov 2006 18:25:08 +0000 (18:25 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Mon, 6 Nov 2006 18:25:08 +0000 (18:25 +0000)
PLC/Methods/BootGetNodeDetails.py

index b616b5a..e077576 100644 (file)
@@ -27,7 +27,8 @@ class BootGetNodeDetails(Method):
         details = {
             'hostname': self.caller['hostname'],
             'boot_state': self.caller['boot_state'],
-            'model': self.caller['model'],
+            # XXX Boot Manager cannot unmarshal None
+            'model': self.caller['model'] or "",
             }
 
         # Generate a new session value
@@ -39,6 +40,14 @@ class BootGetNodeDetails(Method):
 
         if self.caller['nodenetwork_ids']:
             details['networks'] = NodeNetworks(self.api, self.caller['nodenetwork_ids']).values()
+            # XXX Boot Manager cannot unmarshal None
+            for network in details['networks']:
+                for field in network:
+                    if network[field] is None:
+                        if isinstance(network[field], (int, long)):
+                            network[field] = -1
+                        else:
+                            network[field] = ""
 
         return details