import os
+import pickle
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from lxml import etree
-from sfa.util.record import SfaRecord, SliceRecord, AuthorityRecord
-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:
return rec
return None
+ 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
+
+ def getUserSliceHrns(self):
+ rec = self.getUserRecord()
+ if rec:
+ 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 []
+
def purgeNonSliceResources(self, rspec):
# This can probably go away once the new slice manager is fully
# deployed.
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
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):
+ if not slice:
+ slice = config.getSlice()
+
+ filename = config.fullpath(slice+".sliverstatus")
+
+ if os.path.exists(filename):
+ data = open(filename).read()
+ return pickle.loads(data)
+
+ 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
+