Read ~/.sfi/sfi_config
[sfa-gui.git] / SfaData.py
index b6d7331..117c06d 100644 (file)
@@ -4,32 +4,36 @@ from subprocess import *
 from sfa.util.rspecHelper import RSpec
 
 class SfaData:
-    authority = "plc.princeton"
-    user = "plc.princeton.acb"
-    slice = "plc.princeton.sapan"
-
     def __init__(self):
         self.registry = None
         self.slicemgr = None
+        filename = os.path.expanduser("~/.sfi/sfi_config")
+        execfile(filename, SfaData.__dict__)
+        if not hasattr(SfaData, 'SFI_AUTH'): 
+            SfaData.SFI_AUTH = None
+        if not hasattr(SfaData, 'SFI_USER'): 
+            SfaData.SFI_USER = None
+        if not hasattr(SfaData, 'SFI_SLICE'): 
+            SfaData.SFI_SLICE = None
 
     def getAuthority(self):
-        return SfaData.authority
+        return SfaData.SFI_AUTH
 
     def getUser(self):
-        return SfaData.user
+        return SfaData.SFI_USER
 
     def setUser(self, user):
-        SfaData.user = user
+        SfaData.SFI_USER = user
 
         # Should probably get authority from user record instead...
-        a = SfaData.user.split('.')
-        SfaData.authority = '.'.join(a[:len(a)-1])
+        a = user.split('.')
+        SfaData.SFI_AUTH = '.'.join(a[:len(a)-1])
 
     def getSlice(self):
-        return SfaData.slice
+        return SfaData.SFI_SLICE
 
     def setSlice(self, slice):
-        SfaData.slice = slice
+        SfaData.SFI_SLICE = slice
 
     def getRecord(self, hrn):
         text = Popen(["sfi.py", "-u", self.getUser(), "-a", 
@@ -54,10 +58,12 @@ class SfaData:
 
     def getRSpec(self):
         slice = self.getSlice()
+        # Write RSpec to file for testing.
+        filename = os.path.expanduser("~/.sfi/" + slice + ".rspec")
+        os.remove(filename)
         call(["sfi.py", "-u", self.getUser(), "-a", self.getAuthority(), 
               "-r", self.registry, "-s", self.slicemgr, "resources", 
               "-o", slice, slice])
-        filename = os.path.expanduser("~/.sfi/" + slice + ".rspec")
         f = open(filename, "r")
         xml = f.read()
         f.close()
@@ -66,6 +72,7 @@ class SfaData:
     def applyRSpec(self, xml):
         slice = self.getSlice()
         filename = os.path.expanduser("~/.sfi/" + slice + ".rspec")
+        os.remove(filename)
         f = open(filename, "w")
         f.write(xml)
         f.close()