From: Tony Mack Date: Tue, 10 Mar 2009 14:25:20 +0000 (+0000) Subject: added RecordSpec class X-Git-Tag: sfa-0.9-0@14641~599 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=1b73832837a2d06953f55e59c4f09c827560b984;p=sfa.git added RecordSpec class --- diff --git a/geni/util/rspec.py b/geni/util/rspec.py index 0fef4709..0831d917 100644 --- a/geni/util/rspec.py +++ b/geni/util/rspec.py @@ -178,14 +178,14 @@ class Rspec(): def elementNode(tagname, rd): element = minidom.Element(tagname) for key in rd.keys(): - if isinstance(rd[key], StringTypes): - element.setAttribute(key, rd[key]) + if isinstance(rd[key], StringTypes) or isinstance(rd[key], int): + element.setAttribute(key, str(rd[key])) elif isinstance(rd[key], dict): child = elementNode(key, rd[key]) element.appendChild(child) elif isinstance(rd[key], list): for item in rd[key]: - child = elementNode(key, item) + child = elementNode(key, {key:item}) element.appendChild(child) return element @@ -272,4 +272,19 @@ class Rspec(): 'EBoolean' : bool, 'EFloat' : float, 'EDate' : date} + + + +class RecordSpec(Rspec): + + def parseDict(self, rdict, include_doc = False): + """ + Convert a dictionary into a dom object and store it. + """ + self.rootNode = self.dict2dom(rdict, include_doc) + + def dict2dom(self, rdict, include_doc = False): + record_dict = {'record': rdict} + return Rspec.dict2dom(self, record_dict, include_doc) + # vim:ts=4:expandtab