##
import report
+from types import StringTypes
from gid import *
from geni.util.rspec import *
##
# @param gid is a GID object or the string representation of a GID object
def set_gid(self, gid):
- if isinstance(gid, str):
+ if isinstance(gid, StringTypes):
self.gid = gid
else:
self.gid = gid.save_to_string(save_parents=True)
# @param pl_info is a dictionary containing planetlab info
def set_pl_info(self, pl_info):
+ if isinstance(pl_info, list):
+ pl_info = pl_info[0]
+
+ # Convert any boolean strings to real bools
+ for key in pl_info:
+ if isinstance(pl_info[key], StringTypes):
+ if pl_info[key].lower() in ["true"]:
+ pl_info[key] = True
+ elif pl_info[key].lower() in ["false"]:
+ pl_info[key] = False
self.pl_info = pl_info
self.dirty = True
# @param geni_info is a dictionary containing geni info
def set_geni_info(self, geni_info):
+ if isinstance(geni_info, list):
+ geni_info = geni_info[0]
self.geni_info = geni_info
self.dirty = True
def load_from_dict(self, dict):
self.set_name(dict['name'])
-
gidstr = dict.get("gid", None)
if gidstr:
self.set_gid(dict['gid'])
def load_from_string(self, str):
#dict = xmlrpclib.loads(str)[0][0]
+
record = RecordSpec()
record.parseString(str)
- dict = record.toDict()
- self.load_from_dict(dict)
+ record_dict = record.toDict()
+ geni_dict = record_dict['record']
+ self.load_from_dict(geni_dict)
##
# Dump the record to stdout