]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Make the manager a little smarter about finding its config file
authorBrad Hall <bhall@nicira.com>
Mon, 6 Jun 2011 04:52:09 +0000 (21:52 -0700)
committerBrad Hall <bhall@nicira.com>
Mon, 6 Jun 2011 04:52:09 +0000 (21:52 -0700)
quantum/manager.py

index dc882bbb06cfdc21524a6e2344158e3d39bab66e..9932f17af010d56c022963ff6644a2251c5fd547 100644 (file)
@@ -26,17 +26,26 @@ The caller should make sure that QuantumManager is a singleton.
 import gettext
 gettext.install('quantum', unicode=1)
 
+import os
+
 from common import utils
 from quantum_plugin_base import QuantumPluginBase
 
 CONFIG_FILE = "plugins.ini"
 
+def find_config(basepath):
+    for root, dirs, files in os.walk(basepath):
+        if CONFIG_FILE in files:
+            return os.path.join(root, CONFIG_FILE)
+    return None
 
 class QuantumManager(object):
-
-    def __init__(self,config=CONFIG_FILE):
-        self.configuration_file = CONFIG_FILE
-        plugin_location = utils.getPluginFromConfig(CONFIG_FILE)
+    def __init__(self, config=None):
+        if config == None:
+            self.configuration_file = find_config(os.path.abspath(os.path.dirname(__file__)))
+        else:
+            self.configuration_file = config
+        plugin_location = utils.getPluginFromConfig(self.configuration_file)
         print "PLUGIN LOCATION:%s" % plugin_location
         plugin_klass = utils.import_class(plugin_location)
         if not issubclass(plugin_klass, QuantumPluginBase):