You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ariatosca.apache.org by mx...@apache.org on 2017/08/09 12:07:04 UTC
[8/8] incubator-ariatosca git commit: review fix 2
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)