X-Git-Url: http://git.onelab.eu/?p=sfa-gui.git;a=blobdiff_plain;f=SfaData.py;h=88d2b13ae71ce61a43ead0e5bce107548ed265ef;hp=049b0d3015a651445126205b19a7fe04114d4975;hb=a74b5ece881dc840b9ccb750770e46d586f31191;hpb=dd75c282952182b904fbfd26b2f87f5d39552630 diff --git a/SfaData.py b/SfaData.py index 049b0d3..88d2b13 100644 --- a/SfaData.py +++ b/SfaData.py @@ -1,11 +1,12 @@ import os -from subprocess import call +import re +from subprocess import * from sfa.util.rspecHelper import RSpec class SfaData: authority = "plc.princeton" user = "plc.princeton.acb" - slice = "plc.princeton.iias" + slice = "plc.princeton.sapan" def __init__(self): self.registry = None @@ -30,15 +31,35 @@ class SfaData: def setSlice(self, slice): SfaData.slice = slice - def getRecord(self): - pass + def getRecord(self, hrn): + text = Popen(["sfi.py", "-u", self.getUser(), "-a", + self.getAuthority(), "-r", self.registry, + "-s", self.slicemgr, "show", hrn], + stdout=PIPE).communicate()[0] + return text + + def listChildren(self, hrn): + children = [] + text = Popen(["sfi.py", "-u", self.getUser(), "-a", + self.getAuthority(), "-r", self.registry, + "-s", self.slicemgr, "list", hrn], + stdout=PIPE).communicate()[0] + lines = text.split('\n') + for line in lines: + if line: + (hrn, kind) = line.split() + children.append((hrn, kind)) + + return children 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() @@ -47,6 +68,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() @@ -54,11 +76,11 @@ class SfaData: "-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): @@ -74,16 +96,35 @@ class ViniData(SfaData): 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: @@ -91,12 +132,5 @@ class PlanetLabData(SfaData): 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" -