5 defaults = { 'SFI_AUTH' : None,
8 'SFI_REGISTRY' : "http://www.planet-lab.org:12345",
9 'SFI_AM' : "http://www.planet-lab.org:12346",
10 'SFI_SM' : "http://www.planet-lab.org:12347",
11 'SFACE_VERBOSE' : False,
12 'SFACE_DEBUG' : False,
18 def read_config(self):
19 filename = os.path.expanduser("~/.sfi/sfi_config")
20 execfile(filename, SfiConfig.__dict__)
21 for (k,v) in SfiConfig.defaults.items():
22 if not hasattr(SfiConfig,k): setattr(SfiConfig,k,v)
23 if SfiConfig.SFACE_VERBOSE:
24 print "After reading config from %s"%filename
25 for (k,v) in SfiConfig.defaults.items():
26 print "%-20s: %r"%(k,getattr(SfiConfig,k))
28 def save_config(self):
29 config_keys = SfiConfig.defaults.keys()
30 configfile = os.path.expanduser("~/.sfi/sfi_config")
31 tmpfile = configfile + ".tmp"
33 out = open(tmpfile, "w")
34 for line in open(os.path.expanduser("~/.sfi/sfi_config")):
36 key, val = line.split('=')
39 if key in config_keys:
40 line = "%s = '%s'\n" % (key, getattr(self, key))
47 os.rename(tmpfile, configfile)
50 def getAuthority(self):
51 return SfiConfig.SFI_AUTH
54 return SfiConfig.SFI_USER
56 def setUser(self, user):
57 SfiConfig.SFI_USER = user
59 # Should probably get authority from user record instead...
61 SfiConfig.SFI_AUTH = '.'.join(a[:len(a)-1])
64 return SfiConfig.SFI_SLICE
66 def setSlice(self, slice):
67 SfiConfig.SFI_SLICE = slice
70 return SfiConfig.SFI_REGISTRY
73 return SfiConfig.SFI_SM
76 return SfiConfig.SFI_AM
78 # configuration singleton