rename /etc/geni into /etc/sfa
[sfa.git] / geni / util / config.py
index 6ce9e4e..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"
-geni =  os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))+ os.sep + "geni"
+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:
     """
@@ -31,20 +35,26 @@ 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, myplc_file]
-
-        for file in files:
-            try: 
-                execfile(file, self.__dict__)
+        # 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
 
@@ -53,11 +63,11 @@ class Config:
 
         # 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")