# Note that Geniwrapper does not access any of the PLC databases directly via
# a mysql connection; All PLC databases are accessed via PLCAPI.
-import os
-import sys
-from geni.util.debug import log
+### $Id$
+### $URL$
+
+import os.path
import traceback
-geni = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))+ os.sep + "geni"
+from geni.util.debug import log
+
+# xxx the path-search part could use a cleanup;
+# why would anyone want to store the config in /usr/share/geniwrapper at all ?
+# also, if users want to use this, it might help to store stuff in ~/.sfirc or something
+
+# this would denote "/usr/share/geniwrapper/geni"
+# geni = join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "geni")
class Config:
"""
fast but no type conversions.
"""
- def __init__(self, file = "/etc/geni/geni_config"):
+ def __init__(self, filepath = "/etc/sfa/sfa_config"):
# Load plc_config
loaded = False
+ # path to config.py source - this would be '/usr/share/geniwrapper/geni/util'
path = os.path.dirname(os.path.abspath(__file__))
- filename = file.split(os.sep)[-1]
- alt_file = path + os.sep + 'util' + os.sep + filename
- geni_file = geni + os.sep + 'util' + os.sep + filename
- files = [file, alt_file, geni_file]
-
- for file in files:
+ # parent directory of config.py source
+ self.basepath = os.path.dirname(path)
+ # path to actual config file
+ filename = os.path.basename(filepath)
+ alt_file = os.path.join(path, 'util', filename)
+ files = [filepath, alt_file]
+
+ for config_file in files:
try:
- execfile(file, self.__dict__)
+ execfile(config_file, self.__dict__)
loaded = True
- self.config_file = file
+ self.config_file = config_file
+ self.config_path = os.path.dirname(config_file)
break
except:
pass
# set up some useful variables
- def load(self, file):
+ def load(self, filepath):
try:
- execfile(file, self.__dict__)
+ execfile(filepath, self.__dict__)
except:
- raise Exception, "Could not find config in " + file
+ raise Exception, "Could not find config in " + filepath
plcConfig = Config("/etc/planetlab/plc_config")