]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Move plugin configuration to plugins.ini - a config file.
authorSomik Behera <somik@nicira.com>
Fri, 20 May 2011 00:21:48 +0000 (17:21 -0700)
committerSomik Behera <somik@nicira.com>
Fri, 20 May 2011 00:21:48 +0000 (17:21 -0700)
quantum/common/utils.py
quantum/manager.py
quantum/plugins.ini [new file with mode: 0644]

index f35c1a12b31691eaeea208f0d758497d02f918ae..435ec7b878834e1b0526549a11af09c686388821 100644 (file)
@@ -27,9 +27,10 @@ import random
 import subprocess
 import socket
 import sys
+import ConfigParser
 
-from quantum.common import exception
-from quantum.common.exception import ProcessExecutionError
+from common import exceptions
+from exceptions import ProcessExecutionError
 
 
 TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"
@@ -184,6 +185,11 @@ def isotime(at=None):
 def parse_isotime(timestr):
     return datetime.datetime.strptime(timestr, TIME_FORMAT)
 
+def getPluginFromConfig(file="config.ini"):
+        Config = ConfigParser.ConfigParser()
+        Config.read(file)
+        return Config.get("PLUGIN", "provider")
+
 
 class LazyPluggable(object):
     """A pluggable backend loaded lazily based on some value."""
index cdf75052797d5ec1814211b2a0049e82583255d2..a36e9b28f4c0ca1dda8a4ca952e62ad3502eac3a 100644 (file)
@@ -24,20 +24,16 @@ plugin that concretely implement quantum_plugin_base class
 The caller should make sure that QuantumManager is a singleton.
 """
 
-import utils
+from common import utils
 from quantum_plugin_base import QuantumPluginBase
 
-CONFIG_FILE = "quantum_plugin.conf"
+CONFIG_FILE = "plugins.ini"
 
 class QuantumManager(object):
     
    def __init__(self,config=CONFIG_FILE):
         self.configuration_file = CONFIG_FILE
-        #TODO(somik): plugin location should be grabbed from a
-        # configuration file as opposed to hard-coding the location
-        #
-        #plugin_location = get_plugin_location(configuration_file)
-        plugin_location = "plugins.SamplePlugin.DummyDataPlugin"
+        plugin_location = utils.getPluginFromConfig(CONFIG_FILE)
         plugin_klass = utils.import_class(plugin_location)
         if not issubclass(plugin_klass, QuantumPluginBase):
             raise Exception("Configured Quantum plug-in didn't pass compatibility test")
diff --git a/quantum/plugins.ini b/quantum/plugins.ini
new file mode 100644 (file)
index 0000000..61c7694
--- /dev/null
@@ -0,0 +1,3 @@
+[PLUGIN]
+# Quantum plugin provider module
+provider = plugins.SamplePlugin.DummyDataPlugin