Merge "Restores back plugin support"

This commit is contained in:
Jenkins
2015-09-03 17:22:15 +00:00
committed by Gerrit Code Review
3 changed files with 26 additions and 13 deletions

View File

@@ -27,6 +27,7 @@ from oslo_utils import importutils
from murano import version
from murano.common.i18n import _, _LE
from murano.common import config
from murano.common import engine
from murano.dsl import constants
from murano.dsl import exceptions
from murano.dsl import executor
@@ -210,7 +211,7 @@ def run_tests(args):
cfg.CONF.engine.load_packages_from = load_packages_from
with package_loader.CombinedPackageLoader(
murano_client_factory, client.tenant_id) as pkg_loader:
# engine.get_plugin_loader().register_in_loader(class_loader)
engine.get_plugin_loader().register_in_loader(pkg_loader)
exc = executor.MuranoDslExecutor(pkg_loader, test_env)
package = _load_package(pkg_loader, provided_pkg_name)

View File

@@ -147,7 +147,7 @@ class TaskExecutor(object):
return result
def _execute(self, pkg_loader):
# get_plugin_loader().register_in_loader(class_loader)
get_plugin_loader().register_in_loader(pkg_loader)
executor = engine_executor.Executor(
pkg_loader, self.environment)

View File

@@ -21,6 +21,7 @@ import six
from stevedore import dispatch
from murano.common.i18n import _LE, _LI, _LW
from murano.dsl import murano_package
CONF = cfg.CONF
@@ -92,18 +93,10 @@ class PluginLoader(object):
"from package '%(dist)s': %(err)s")
% dict(ep=ep.name, dist=ep.dist, err=exc))
def register_in_loader(self, class_loader):
def register_in_loader(self, package_loader):
for package in six.itervalues(self.packages):
for class_name, clazz in six.iteritems(package.classes):
if hasattr(clazz, "_murano_class_name"):
LOG.warning(_LW("Class '%(class_name)s' has a MuranoPL "
"name '%(name)s' defined which will be "
"ignored") %
dict(class_name=class_name,
name=getattr(clazz, "_murano_class_name")))
LOG.debug("Registering '%s' from '%s' in class loader"
% (class_name, package.name))
class_loader.import_class(clazz, name=class_name)
package_loader.register_package(
MuranoPackage(package_loader, package))
def initialize_plugin(plugin):
@@ -126,3 +119,22 @@ class PackageDefinition(object):
else:
self.info = None
self.classes = {}
class MuranoPackage(murano_package.MuranoPackage):
def __init__(self, pkg_loader, package_definition):
super(MuranoPackage, self).__init__(
pkg_loader, package_definition.name, runtime_version='1.0')
for class_name, clazz in six.iteritems(package_definition.classes):
if hasattr(clazz, "_murano_class_name"):
LOG.warning(_LW("Class '%(class_name)s' has a MuranoPL "
"name '%(name)s' defined which will be "
"ignored") %
dict(class_name=class_name,
name=getattr(clazz, "_murano_class_name")))
LOG.debug("Registering '%s' from '%s' in class loader"
% (class_name, package_definition.name))
self.register_class(clazz, class_name)
def get_resource(self, name):
raise NotImplementedError()