# 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 os.path import join,dirname,basename,abspath
+from geni.util.debug import log
+import traceback
-# 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 = join(dirname(dirname(dirname(abspath(__file__)))), "geni")
class Config:
"""
fast but no type conversions.
"""
- def __init__(self, file = "/usr/share/geniwrapper/util/geni_config"):
+ def __init__(self, filepath = "/etc/geni/geni_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
+ path = dirname(abspath(__file__))
+ self.path = path
+ # parent directory of config.py source
+ self.basepath = dirname(self.path)
+ # path to actual config file
+ filename = basename(filepath)
+ alt_file = join(self.path, 'util', filename)
+ geni_file = join(geni, 'util', filename)
+ files = [filepath, alt_file, geni_file]
+
+ for config_file in files:
+ try:
+ execfile(config_file, self.__dict__)
+ loaded = True
+ self.config_file = config_file
+ self.config_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")