X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fsfidata.py;h=4f2749ee3cfc7837a788277737f0c768272c85df;hp=5de402adba292577389fc4191ef35bc2d33d5f55;hb=480ff8b34640f125528b4a008c031eff8d232135;hpb=96ec1c38a62466c4d69a57835d470fee98a39edc diff --git a/sface/sfidata.py b/sface/sfidata.py index 5de402a..4f2749e 100644 --- a/sface/sfidata.py +++ b/sface/sfidata.py @@ -4,8 +4,9 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * from lxml import etree -from sfa.util.record import SfaRecord, SliceRecord, AuthorityRecord, UserRecord -from sfa.rspecs.rspec_parser import parse_rspec +from sfa.util.xrn import hrn_to_urn, urn_to_hrn +from sfa.storage.record import SfaRecord, SliceRecord, AuthorityRecord, UserRecord +from sfa.rspecs.rspec import RSpec from sface.config import config class SfiData: @@ -48,7 +49,16 @@ class SfiData: def getUserSliceHrns(self): rec = self.getUserRecord() if rec: - return rec.get_field("slices") + slices = rec.get_field("slices") + if (type(slices)!=list) or (len(slices)<1): + return [] + + # get_field("slices") is returning [{"text": name}, {"text": name}, ...] + if (type(slices[0])==dict): + if "text" in slices[0]: + slices = [x["text"] for x in slices] + + return slices return [] @@ -70,9 +80,9 @@ class SfiData: rspec_file = config.getSliceRSpecFile() if os.path.exists(rspec_file): xml = open(rspec_file).read() - rspec = parse_rspec(xml) + rspec = RSpec(rspec=xml) #rspec = parse_rspec(xml) - self.purgeNonSliceResources(rspec) + #self.purgeNonSliceResources(rspec) return rspec return None @@ -81,7 +91,8 @@ class SfiData: rspec_file = config.getResourcesRSpecFile() if os.path.exists(rspec_file): xml = open(rspec_file).read() - return parse_rspec(xml) + rspec = RSpec(rspec=xml) #rspec= parse_rspec(xml) + return rspec return None def getSliverStatus(self, slice=None): @@ -96,4 +107,12 @@ class SfiData: return None + def getSliceMgrVersion(self): + filename = config.fullpath("slicemgr.version") + + if os.path.exists(filename): + data = open(filename).read() + return pickle.loads(data) + + return None