X-Git-Url: http://git.onelab.eu/?p=sfa-gui.git;a=blobdiff_plain;f=SfaData.py;h=117c06df976c3c6ab805cc4d493ba13df1a149b4;hp=9100b3e1ef878e22ea8a79f1aa3cf61fe7b2c4b7;hb=2161dfb4ced32f92fc90488b3bb09734cb89622f;hpb=743fb4d29bdf0e58bffb84b420f922c722a8d8cb diff --git a/SfaData.py b/SfaData.py index 9100b3e..117c06d 100644 --- a/SfaData.py +++ b/SfaData.py @@ -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() @@ -116,6 +123,18 @@ class GpENIData(PlanetLabData): class OpenCirrusData(SfaData): def __init__(self): SfaData.__init__(self) - self.registry = "http://www.planet-lab.org:12345" - self.slicemgr = "http://www.planet-lab.org:12346" + self.registry = "http://198.55.37.29:12345" + self.slicemgr = "http://198.55.37.29:12346" + + def refreshRSpec(self): + xml = SfaData.getRSpec(self) + self.rspec = xml + def getRSpec(self): + if self.rspec is None: + self.refreshRSpec() + return self.rspec + + def applyRSpec(self): + xml = self.rspec + SfaData.applyRSpec(self, xml)