##
import report
+from types import StringTypes
from gid import *
-
+from geni.util.rspec import *
##
# The GeniRecord class implements a Geni Record. A GeniRecord is a tuple
# (Name, GID, Type, Info).
# @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]
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'])
# the record.
def save_to_string(self):
+
dict = self.as_dict()
- str = xmlrpclib.dumps((dict,), allow_none=True)
+ record = RecordSpec()
+ record.parseDict(dict)
+ str = record.toxml()
+ #str = xmlrpclib.dumps((dict,), allow_none=True)
return str
##
# representation of the record.
def load_from_string(self, str):
- dict = xmlrpclib.loads(str)[0][0]
- self.load_from_dict(dict)
+ #dict = xmlrpclib.loads(str)[0][0]
+
+ record = RecordSpec()
+ record.parseString(str)
+ record_dict = record.toDict()
+ geni_dict = record_dict['record']
+ self.load_from_dict(geni_dict)
##
# Dump the record to stdout