X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fsfidata.py;h=6f7b26528d5f52eb7a0bcad1596c95106090be39;hp=9a2710a41a07e4cf8b172ad7af56b129c12d2e78;hb=9e8c8ba7acb8cfaffade59e58c9f5fff762d56dc;hpb=72d17d9e61f0c38e293a3e8773b046975ac570d5 diff --git a/sface/sfidata.py b/sface/sfidata.py index 9a2710a..6f7b265 100644 --- a/sface/sfidata.py +++ b/sface/sfidata.py @@ -1,3 +1,4 @@ +import json import os import pickle from PyQt4.QtCore import * @@ -5,7 +6,6 @@ from PyQt4.QtGui import * from lxml import etree 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 @@ -28,23 +28,21 @@ class SfiData: return names - def getSliceRecord(self): - rec_file = config.getSliceRecordFile() + def getRecord(self, rec_file): if os.path.exists(rec_file): + from sfa.storage.record import Record xml = open(rec_file).read() - rec = SliceRecord() - rec.load_from_string(xml) - return rec - return None + rec = Record(xml=xml) + return rec.todict() + return None + + def getSliceRecord(self): + rec_file = config.getSliceRecordFile() + return self.getRecord(rec_file) def getUserRecord(self): rec_file = config.getUserRecordFile() - if os.path.exists(rec_file): - xml = open(rec_file).read() - rec = UserRecord() - rec.load_from_string(xml) - return rec - return None + return self.getRecord(rec_file) def getUserSliceHrns(self): rec = self.getUserRecord() @@ -105,11 +103,21 @@ class SfiData: if not slice: slice = config.getSlice() + if not slice: + return None + filename = config.fullpath(slice+".sliverstatus") if os.path.exists(filename): data = open(filename).read() - return pickle.loads(data) + try: + if hasattr(json, "loads"): + return json.loads(data) # python 2.6 + else: + return json.read(data) # python 2.5 + except: + print "Exception in getSliverStatus" + return None return None