diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-07-20 19:17:28 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-07-20 19:17:28 +0000 |
| commit | 8887c0ea63e3308900640f04509842520d5854ef (patch) | |
| tree | dba63f488d65506400afe3e29aec693152d06e9b /nova/api | |
| parent | 1c9e359428fef8cae6f6c331bb5462645e52a9c2 (diff) | |
| parent | a30ed72967eddf16718af717978acd80ebef2006 (diff) | |
Merge "Add the plugin framework from common; use and test."
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/extensions.py | 5 | ||||
| -rw-r--r-- | nova/api/openstack/extensions.py | 7 | ||||
| -rw-r--r-- | nova/api/openstack/volume/extensions.py | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/extensions.py b/nova/api/openstack/compute/extensions.py index cb5e89deb..1a01928bc 100644 --- a/nova/api/openstack/compute/extensions.py +++ b/nova/api/openstack/compute/extensions.py @@ -18,6 +18,7 @@ from nova.api.openstack import extensions as base_extensions from nova import flags from nova.openstack.common import log as logging +from nova.openstack.common.plugin import pluginmanager LOG = logging.getLogger(__name__) @@ -29,5 +30,9 @@ class ExtensionManager(base_extensions.ExtensionManager): LOG.audit(_('Initializing extension manager.')) self.cls_list = FLAGS.osapi_compute_extension + self.PluginManager = pluginmanager.PluginManager('nova', + 'compute-extensions') + self.PluginManager.load_plugins() + self.cls_list.append(self.PluginManager.plugin_extension_factory) self.extensions = {} self._load_extensions() diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py index be7304e6e..5d5c750a2 100644 --- a/nova/api/openstack/extensions.py +++ b/nova/api/openstack/extensions.py @@ -246,8 +246,11 @@ class ExtensionManager(object): LOG.debug(_("Loading extension %s"), ext_factory) - # Load the factory - factory = importutils.import_class(ext_factory) + if isinstance(ext_factory, basestring): + # Load the factory + factory = importutils.import_class(ext_factory) + else: + factory = ext_factory # Call it LOG.debug(_("Calling extension factory %s"), ext_factory) diff --git a/nova/api/openstack/volume/extensions.py b/nova/api/openstack/volume/extensions.py index cf400bd9a..ac880d6e5 100644 --- a/nova/api/openstack/volume/extensions.py +++ b/nova/api/openstack/volume/extensions.py @@ -30,4 +30,5 @@ class ExtensionManager(base_extensions.ExtensionManager): self.cls_list = FLAGS.osapi_volume_extension self.extensions = {} + self.plugins = [] self._load_extensions() |
