from sfa.util.rspecHelper import RSpec
class SfaData:
- authority = "plc.princeton"
- user = "plc.princeton.acb"
- slice = "plc.princeton.iias"
-
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",
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()
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()
"-r", self.registry, "-s", self.slicemgr, "create",
slice, filename])
-class ViniData(SfaData):
+class PlanetLabData(SfaData):
def __init__(self):
SfaData.__init__(self)
self.registry = "http://www.planet-lab.org:12345"
- self.slicemgr = "http://www.vini-veritas.net:12346"
+ self.slicemgr = "http://www.planet-lab.org:12346"
self.rspec = None
def refreshRSpec(self):
xml = self.rspec.toxml()
SfaData.applyRSpec(self, xml)
-class PlanetLabData(SfaData):
+class PLEData(PlanetLabData):
+ def __init__(self):
+ PlanetLabData.__init__(self)
+ self.slicemgr = "http://www.planet-lab.eu:12346"
+
+class PLJData(PlanetLabData):
+ def __init__(self):
+ PlanetLabData.__init__(self)
+ self.slicemgr = "http://www.planet-lab.jp:12346"
+
+class ViniData(PlanetLabData):
+ def __init__(self):
+ PlanetLabData.__init__(self)
+ self.slicemgr = "http://www.vini-veritas.net:12346"
+
+class GpENIData(PlanetLabData):
+ def __init__(self):
+ PlanetLabData.__init__(self)
+ self.slicemgr = "http://198.248.241.100:12346"
+
+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.rspec = None
+ 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 = RSpec(xml)
+ self.rspec = xml
def getRSpec(self):
if self.rspec is None:
return self.rspec
def applyRSpec(self):
- xml = self.rspec.toxml()
+ xml = self.rspec
SfaData.applyRSpec(self, xml)
-
-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"
-