review fix 2
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/2a4527c7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/2a4527c7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/2a4527c7 Branch: refs/heads/ARIA-174-Refactor-instantiation-phase Commit: 2a4527c75c07fbe2db40dbc486174e27ab1e9fac Parents: 1f93729 Author: max-orlov <ma...@gigaspaces.com> Authored: Wed Aug 9 14:52:34 2017 +0300 Committer: max-orlov <ma...@gigaspaces.com> Committed: Wed Aug 9 15:06:49 2017 +0300 ---------------------------------------------------------------------- aria/core.py | 6 +++--- aria/modeling/service_template.py | 11 ++++------ aria/modeling/utils.py | 6 +++--- aria/orchestrator/topology/common.py | 3 +++ aria/orchestrator/topology/instance_handler.py | 6 +++--- aria/orchestrator/topology/template_handler.py | 14 ++++++------ aria/orchestrator/topology/topology.py | 24 ++++++++++----------- aria/utils/console.py | 4 ---- 8 files changed, 34 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/core.py ---------------------------------------------------------------------- diff --git a/aria/core.py b/aria/core.py index 83d5f7a..5a56cfc 100644 --- a/aria/core.py +++ b/aria/core.py @@ -76,7 +76,7 @@ class Core(object): with storage_session.no_autoflush: topology_ = topology.Topology() service = topology_.instantiate( - service_template, inputs=inputs, model_storage=self.model_storage) + service_template, inputs=inputs, model_storage=self.model_storage.plugins.list()) topology_.coerce(service, report_issues=True) topology_.validate(service) @@ -118,8 +118,8 @@ class Core(object): def _parse_service_template(service_template_path): context = consumption.ConsumptionContext() context.presentation.location = UriLocation(service_template_path) - # Most of the parser uses the topology package in order to manipulate teh models. - # However, here we use the ConsumerChain, but this should change in the future. + # Most of the parser uses the topology package in order to manipulate the models. + # However, here we use the Consumer, but this should change in the future. consumption.ConsumerChain( context, ( http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/modeling/service_template.py ---------------------------------------------------------------------- diff --git a/aria/modeling/service_template.py b/aria/modeling/service_template.py index aaf88db..d988d21 100644 --- a/aria/modeling/service_template.py +++ b/aria/modeling/service_template.py @@ -546,10 +546,6 @@ class NodeTemplateBase(TemplateModelMixin): extract_property(properties, 'max_instances') extract_property(properties, 'default_instances') - def default_property(name, value): - if name not in scaling: - scaling[name] = value - # From our scaling capabilities for capability_template in self.capability_templates.itervalues(): if capability_template.type.role == 'scaling': @@ -562,12 +558,13 @@ class NodeTemplateBase(TemplateModelMixin): extract_properties(policy_template.properties) # Defaults - default_property('min_instances', 0) - default_property('max_instances', 1) - default_property('default_instances', 1) + scaling.setdefault('min_instances', 0) + scaling.setdefault('max_instances', 1) + scaling.setdefault('default_instances', 1) return scaling + class GroupTemplateBase(TemplateModelMixin): """ Template for creating a :class:`Group` instance, which is a typed logical container for zero or http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/modeling/utils.py ---------------------------------------------------------------------- diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py index 9b64598..305020b 100644 --- a/aria/modeling/utils.py +++ b/aria/modeling/utils.py @@ -175,7 +175,7 @@ def fix_doc(cls): return cls -def _get_class_from_sql_relationship(property): - class_ = property._sa_adapter.owner_state.class_ - prop_name = property._sa_adapter.attr.key +def _get_class_from_sql_relationship(field): + class_ = field._sa_adapter.owner_state.class_ + prop_name = field._sa_adapter.attr.key return getattr(class_, prop_name).property.mapper.class_ http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/orchestrator/topology/common.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/topology/common.py b/aria/orchestrator/topology/common.py index 02926ab..5124557 100644 --- a/aria/orchestrator/topology/common.py +++ b/aria/orchestrator/topology/common.py @@ -62,5 +62,8 @@ class InstanceHandlerBase(HandlerBase): class ActorHandlerBase(HandlerBase): + """ + Base handler for any model which has (or contains a field which references) an operation + """ def configure_operations(self): raise NotImplementedError http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/orchestrator/topology/instance_handler.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/topology/instance_handler.py b/aria/orchestrator/topology/instance_handler.py index 31e94e4..4194de7 100644 --- a/aria/orchestrator/topology/instance_handler.py +++ b/aria/orchestrator/topology/instance_handler.py @@ -550,7 +550,7 @@ class Substitution(common.InstanceHandlerBase): out_stream.write('Substitution:') with out_stream.indent(): out_stream.write('Node type: {0}'.format(out_stream.type_style( - self._model.node_type.name))) + self._model.node.name))) self._topology.dump(self._model.mappings, out_stream, title='Mappings') @@ -571,12 +571,12 @@ class SubstitutionMapping(common.InstanceHandlerBase): if self._model.capability is not None: out_stream.write('{0} -> {1}.{2}'.format( out_stream.node_style(self._model.name), - out_stream.node_style(self._model.capability.node_style.name), + out_stream.node_style(self._model.capability.node.name), out_stream.node_style(self._model.capability.name))) else: out_stream.write('{0} -> {1}.{2}'.format( out_stream.node_style(self._model.name), - out_stream.node_style(self._model.node_style.name), + out_stream.node_style(self._model.node.name), out_stream.node_style(self._model.requirement_template.name))) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/orchestrator/topology/template_handler.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/topology/template_handler.py b/aria/orchestrator/topology/template_handler.py index eef3a18..2c40f3a 100644 --- a/aria/orchestrator/topology/template_handler.py +++ b/aria/orchestrator/topology/template_handler.py @@ -47,7 +47,7 @@ class ServiceTemplate(common.TemplateHandlerBase): self._model.workflow_templates, **kwargs) - def instantiate(self, instance_cls, inputs=None, model_storage=None): # pylint: disable=arguments-differ + def instantiate(self, instance_cls, inputs=None, plugins=None): # pylint: disable=arguments-differ now = datetime.now() modeling_utils.validate_no_undeclared_inputs( @@ -64,9 +64,8 @@ class ServiceTemplate(common.TemplateHandlerBase): ) for plugin_specification in self._model.plugin_specifications.itervalues(): - if plugin_specification.enabled and model_storage: - if self._resolve_plugin_specification(plugin_specification, - model_storage.plugin.list()): + if plugin_specification.enabled and plugins: + if self._resolve_plugin_specification(plugin_specification, plugins): plugin = plugin_specification.plugin service.plugins[plugin.name] = plugin else: @@ -431,15 +430,14 @@ class SubstitutionTemplate(common.TemplateHandlerBase): out_stream.write('Substitution template:') with out_stream.indent(): out_stream.write('Node type: {0}'.format(out_stream.type_style( - self._model.node_type.name))) + self._model.node.name))) self._topology.dump(self._model.mappings, out_stream, title='Mappings') def coerce(self, **kwargs): self._topology.coerce(self._model.mappings, **kwargs) def instantiate(self, instance_cls, **_): - return instance_cls(node_type=self._model.node_type, - substitution_template=self._model) + return instance_cls(node_type=self._model.node_type, substitution_template=self._model) def validate(self, **kwargs): self._topology.validate(self._model.mappings, **kwargs) @@ -594,7 +592,7 @@ class OperationTemplate(common.TemplateHandlerBase): **kwargs) -class PluginSpecification(common.TemplateHandlerBase): +class PluginSpecification(common.HandlerBase): def validate(self, **kwargs): pass http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/orchestrator/topology/topology.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/topology/topology.py b/aria/orchestrator/topology/topology.py index 8cb220f..eeb413f 100644 --- a/aria/orchestrator/topology/topology.py +++ b/aria/orchestrator/topology/topology.py @@ -51,17 +51,17 @@ class Topology(issue.ReporterMixin): def __init__(self, *args, **kwargs): super(Topology, self).__init__(*args, **kwargs) - self._models_to_handlers = dict(self._init_handlers(instance_handler), - **self._init_handlers(template_handler)) + self._model_cls_to_handler = dict(self._init_handlers(instance_handler), + **self._init_handlers(template_handler)) @staticmethod def _init_handlers(module_): """ - Register handlers from a module to the models + Register handlers from the handler module to the models :param module_: The module to look for handlers - :return: a dict where key is the models class, and the value is the handler class - associated with it from the provided modukle + :return: a dict where the key is the models class, and the value is the handler class + associated with it from the provided module """ handlers = {} for attribute_name in dir(module_): @@ -86,7 +86,7 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return list(self.instantiate(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] model_instance_cls = self._init_map[model.__class__] return _handler(self, model).instantiate(model_instance_cls, **kwargs) @@ -96,7 +96,7 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return all(self.validate(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] return _handler(self, model).validate(**kwargs) def dump(self, model, out_stream=None, title=None, **kwargs): @@ -118,7 +118,7 @@ class Topology(issue.ReporterMixin): self.dump(value, out_stream=out_stream, **kwargs) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] _handler(self, model).dump(out_stream=out_stream, **kwargs) return out_stream @@ -156,7 +156,7 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return all(self.coerce(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] return _handler(self, model).coerce(**kwargs) def dump_types(self, service_template, out_stream=None): @@ -177,7 +177,7 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return all(self.satisfy_requirements(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] return _handler(self, model).satisfy_requirements(**kwargs) def validate_capabilities(self, model, **kwargs): @@ -186,7 +186,7 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return all(self.validate_capabilities(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] return _handler(self, model).validate_capabilities(**kwargs) def _find_host(self, node): @@ -219,5 +219,5 @@ class Topology(issue.ReporterMixin): elif isinstance(model, list): return all(self.configure_operations(value, **kwargs) for value in model) elif model is not None: - _handler = self._models_to_handlers[model.__class__] + _handler = self._model_cls_to_handler[model.__class__] return _handler(self, model).configure_operations(**kwargs) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/2a4527c7/aria/utils/console.py ---------------------------------------------------------------------- diff --git a/aria/utils/console.py b/aria/utils/console.py index 0d379e1..81e8cf8 100644 --- a/aria/utils/console.py +++ b/aria/utils/console.py @@ -47,10 +47,6 @@ class TopologyStylizer(object): self._indentation -= indentation @staticmethod - def section_style(value): - return Colored.cyan(value, bold=True) - - @staticmethod def type_style(value): return Colored.blue(value, bold=True)