3 from subprocess import *
4 from sfa.util.rspecHelper import RSpec
7 authority = "plc.princeton"
8 user = "plc.princeton.acb"
9 slice = "plc.princeton.iias"
15 def getAuthority(self):
16 return SfaData.authority
21 def setUser(self, user):
24 # Should probably get authority from user record instead...
25 a = SfaData.user.split('.')
26 SfaData.authority = '.'.join(a[:len(a)-1])
31 def setSlice(self, slice):
34 def getRecord(self, hrn):
35 text = Popen(["sfi.py", "-u", self.getUser(), "-a",
36 self.getAuthority(), "-r", self.registry,
37 "-s", self.slicemgr, "show", hrn],
38 stdout=PIPE).communicate()[0]
41 def listChildren(self, hrn):
43 text = Popen(["sfi.py", "-u", self.getUser(), "-a",
44 self.getAuthority(), "-r", self.registry,
45 "-s", self.slicemgr, "list", hrn],
46 stdout=PIPE).communicate()[0]
47 lines = text.split('\n')
50 (hrn, kind) = line.split()
51 children.append((hrn, kind))
56 slice = self.getSlice()
57 call(["sfi.py", "-u", self.getUser(), "-a", self.getAuthority(),
58 "-r", self.registry, "-s", self.slicemgr, "resources",
60 filename = os.path.expanduser("~/.sfi/" + slice + ".rspec")
61 f = open(filename, "r")
66 def applyRSpec(self, xml):
67 slice = self.getSlice()
68 filename = os.path.expanduser("~/.sfi/" + slice + ".rspec")
69 f = open(filename, "w")
72 call(["sfi.py", "-u", self.getUser(), "-a", self.getAuthority(),
73 "-r", self.registry, "-s", self.slicemgr, "create",
76 class ViniData(SfaData):
78 SfaData.__init__(self)
79 self.registry = "http://www.planet-lab.org:12345"
80 self.slicemgr = "http://www.vini-veritas.net:12346"
83 def refreshRSpec(self):
84 xml = SfaData.getRSpec(self)
85 self.rspec = RSpec(xml)
88 if self.rspec is None:
93 xml = self.rspec.toxml()
94 SfaData.applyRSpec(self, xml)
96 class PlanetLabData(SfaData):
98 SfaData.__init__(self)
99 self.registry = "http://www.planet-lab.org:12345"
100 self.slicemgr = "http://www.planet-lab.org:12346"
103 def refreshRSpec(self):
104 xml = SfaData.getRSpec(self)
105 self.rspec = RSpec(xml)
108 if self.rspec is None:
112 def applyRSpec(self):
113 xml = self.rspec.toxml()
114 SfaData.applyRSpec(self, xml)
116 class OpenCirrusData(SfaData):
118 SfaData.__init__(self)
119 self.registry = "http://www.planet-lab.org:12345"
120 self.slicemgr = "http://www.planet-lab.org:12346"