remove unnecessary references to old-style sfa.storage.record
[sface.git] / sface / sfidata.py
index 71bb471..9209b1e 100644 (file)
@@ -1,3 +1,4 @@
+import json
 import os
 import pickle
 from PyQt4.QtCore import *
@@ -5,7 +6,7 @@ from PyQt4.QtGui import *
 
 from lxml import etree
 from sfa.util.xrn import hrn_to_urn, urn_to_hrn
-from sfa.util.record import SfaRecord, SliceRecord, AuthorityRecord, UserRecord
+from sfa.storage.record import SfaRecord, SliceRecord, AuthorityRecord, UserRecord
 from sfa.rspecs.rspec import RSpec
 from sface.config import config
 
@@ -80,9 +81,11 @@ class SfiData:
         rspec_file = config.getSliceRSpecFile()
         if os.path.exists(rspec_file):
             xml = open(rspec_file).read()
-            rspec = RSpec(rspec=xml) #rspec = parse_rspec(xml)
 
-            #self.purgeNonSliceResources(rspec)
+            if (xml.strip()==""):
+               return None
+
+            rspec = RSpec(rspec=xml)
 
             return rspec
         return None
@@ -91,7 +94,11 @@ class SfiData:
         rspec_file = config.getResourcesRSpecFile()
         if os.path.exists(rspec_file):
             xml = open(rspec_file).read()
-            rspec = RSpec(rspec=xml) #rspec= parse_rspec(xml)
+
+            if (xml.strip()==""):
+                return None
+
+            rspec = RSpec(rspec=xml)
             return rspec
         return None
 
@@ -99,11 +106,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