]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add support to dynamically upload drivers in PLUMgrid plugin
authorEdgar Magana <emagana@gmail.com>
Thu, 1 May 2014 20:25:45 +0000 (13:25 -0700)
committerEdgar Magana <emagana@gmail.com>
Thu, 1 May 2014 20:36:03 +0000 (13:36 -0700)
PLUMgrid plugin will be able to dynamycally upload any of its available drivers.
It will simplify any CI testing by changing the configuration file for the plugin
instead of changing the code directly.

Change-Id: I56da881688cfdf8f9a1b655c1080c39ffc0133a5
Closes-bug: #1315137

etc/neutron/plugins/plumgrid/plumgrid.ini
neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py

index e9ea3111b7f85ae93e56fc650d4daee1eef7305a..bfe8062ae6d819a249bd68310d43161d171a6533 100644 (file)
@@ -11,3 +11,4 @@
 # username=<director-admin-username>
 # password=<director-admin-password>
 # servertimeout=5
+# driver=<plugin-driver>
index 5a1c31084ed5740389328edfce8cc2e038897be1..c017e44e6d63c974013f3c1ea9f1efa0b14314a9 100644 (file)
@@ -39,7 +39,6 @@ from neutron.plugins.plumgrid.common import exceptions as plum_excep
 from neutron.plugins.plumgrid.plumgrid_plugin.plugin_ver import VERSION
 
 LOG = logging.getLogger(__name__)
-PLUM_DRIVER = 'neutron.plugins.plumgrid.drivers.plumlib.Plumlib'
 
 director_server_opts = [
     cfg.StrOpt('director_server', default='localhost',
@@ -51,7 +50,10 @@ director_server_opts = [
     cfg.StrOpt('password', default='password', secret=True,
                help=_("PLUMgrid Director admin password")),
     cfg.IntOpt('servertimeout', default=5,
-               help=_("PLUMgrid Director server timeout")), ]
+               help=_("PLUMgrid Director server timeout")),
+    cfg.StrOpt('driver',
+               default="neutron.plugins.plumgrid.drivers.plumlib.Plumlib",
+               help=_("PLUMgrid Driver")), ]
 
 cfg.CONF.register_opts(director_server_opts, "plumgriddirector")
 
@@ -83,10 +85,11 @@ class NeutronPluginPLUMgridV2(db_base_plugin_v2.NeutronDbPluginV2,
         director_admin = cfg.CONF.plumgriddirector.username
         director_password = cfg.CONF.plumgriddirector.password
         timeout = cfg.CONF.plumgriddirector.servertimeout
+        plum_driver = cfg.CONF.plumgriddirector.driver
 
         # PLUMgrid Director info validation
         LOG.info(_('Neutron PLUMgrid Director: %s'), director_plumgrid)
-        self._plumlib = importutils.import_object(PLUM_DRIVER)
+        self._plumlib = importutils.import_object(plum_driver)
         self._plumlib.director_conn(director_plumgrid, director_port, timeout,
                                     director_admin, director_password)