rename /etc/geni into /etc/sfa
[sfa.git] / geni / util / config.py
index 4a20023..c802d05 100644 (file)
 # 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
+### $Id$
+### $URL$
 
-# If we have been checked out into a directory at the same
-# level as myplc, where plc_config.py lives. If we are in a
-# MyPLC environment, plc_config.py has already been installed
-# in site-packages.
-myplc = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + \
-        os.sep + "myplc"
+import os.path
+import traceback
+
+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:
     """
@@ -30,32 +35,39 @@ class Config:
     fast but no type conversions.
     """
 
-    def __init__(self, file = "/usr/share/geniwrapper/util/geni_config"):
+    def __init__(self, filepath = "/etc/sfa/sfa_config"):
         # Load plc_config
 
-       loaded = False
-       path = os.path.dirname(os.path.abspath(__file__))
-       filename = file.split(os.sep)[-1]
-       alt_file = path + os.sep + filename
-       myplc_file = myplc + os.sep + filename
-       files = [file, alt_file, myplc_file]
-
-       for file in files:
-           try: 
-               execfile(file, self.__dict__)
-               loaded = True
-           except:
-               pass
-
-       if not loaded:
-           raise Exception, "Could not find config in " + ", ".join(files)
-
-
-    def load(self, file):
-       try:
-           execfile(file, self.__dict__)
-       except:
-           raise Exception, "Could not find config in " + file
+        loaded = False
+        # path to config.py source - this would be '/usr/share/geniwrapper/geni/util'
+        path = os.path.dirname(os.path.abspath(__file__))
+        # 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(config_file, self.__dict__)
+                loaded = True
+                self.config_file = config_file
+                self.config_path = os.path.dirname(config_file)
+                break
+            except:
+                pass
+
+        if not loaded:
+            raise Exception, "Could not find config in " + ", ".join(files)
+
+        # set up some useful variables
+
+    def load(self, filepath):
+        try:
+            execfile(filepath, self.__dict__)
+        except:
+            raise Exception, "Could not find config in " + filepath
 
 plcConfig = Config("/etc/planetlab/plc_config")