Repository: incubator-ariatosca Updated Branches: refs/heads/unified_coerce ba26bc382 -> 8c612f376 (forced update)
unified_coerce Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/8c612f37 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/8c612f37 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/8c612f37 Branch: refs/heads/unified_coerce Commit: 8c612f3766cd218296381b3eaef59d2267b66f76 Parents: 09f826a Author: max-orlov <[email protected]> Authored: Wed Mar 8 17:02:34 2017 +0200 Committer: max-orlov <[email protected]> Committed: Sun Mar 19 13:46:09 2017 +0200 ---------------------------------------------------------------------- aria/modeling/mixins.py | 17 ++++++-- aria/modeling/service_instance.py | 47 +-------------------- aria/modeling/service_template.py | 74 +++++++++------------------------- 3 files changed, 33 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8c612f37/aria/modeling/mixins.py ---------------------------------------------------------------------- diff --git a/aria/modeling/mixins.py b/aria/modeling/mixins.py index 8eb08e8..9415583 100644 --- a/aria/modeling/mixins.py +++ b/aria/modeling/mixins.py @@ -26,12 +26,12 @@ from sqlalchemy import ( Text, ) -from .utils import classproperty +from . import utils class ModelMixin(object): - @classproperty + @utils.classproperty def __modelname__(cls): # pylint: disable=no-self-argument return getattr(cls, '__mapiname__', cls.__tablename__) @@ -125,7 +125,18 @@ class InstanceModelMixin(ModelMixin): pass def coerce_values(self, container, report_issues): - pass + if container is None: + return + for value in vars(container).values(): + if value is not None and isinstance(value, ModelMixin): + if isinstance(value, dict): + value = value.values() + + if isinstance(value, list): + for item in value: + item.coerce_values(container, report_issues) + else: + utils.coerce_value(container, value, report_issues) def dump(self): pass http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8c612f37/aria/modeling/service_instance.py ---------------------------------------------------------------------- diff --git a/aria/modeling/service_instance.py b/aria/modeling/service_instance.py index 5c2cf54..f3f3dd0 100644 --- a/aria/modeling/service_instance.py +++ b/aria/modeling/service_instance.py @@ -218,17 +218,6 @@ class ServiceBase(InstanceModelMixin): # pylint: disable=too-many-public-methods utils.validate_dict_values(self.outputs) utils.validate_dict_values(self.workflows) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.meta_data, report_issues) - utils.coerce_dict_values(container, self.nodes, report_issues) - utils.coerce_dict_values(container, self.groups, report_issues) - utils.coerce_dict_values(container, self.policies, report_issues) - if self.substitution is not None: - self.substitution.coerce_values(container, report_issues) - utils.coerce_dict_values(container, self.inputs, report_issues) - utils.coerce_dict_values(container, self.outputs, report_issues) - utils.coerce_dict_values(container, self.workflows, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() if self.description is not None: @@ -550,13 +539,6 @@ class NodeBase(InstanceModelMixin): # pylint: disable=too-many-public-methods utils.validate_dict_values(self.capabilities) utils.validate_list_values(self.outbound_relationships) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - utils.coerce_dict_values(self, self.interfaces, report_issues) - utils.coerce_dict_values(self, self.artifacts, report_issues) - utils.coerce_dict_values(self, self.capabilities, report_issues) - utils.coerce_list_values(self, self.outbound_relationships, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts('Node: {0}'.format(context.style.node(self.name))) @@ -654,10 +636,6 @@ class GroupBase(InstanceModelMixin): utils.validate_dict_values(self.properties) utils.validate_dict_values(self.interfaces) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - utils.coerce_dict_values(container, self.interfaces, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts('Group: {0}'.format(context.style.node(self.name))) @@ -752,9 +730,6 @@ class PolicyBase(InstanceModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts('Policy: {0}'.format(context.style.node(self.name))) @@ -831,9 +806,6 @@ class SubstitutionBase(InstanceModelMixin): def validate(self): utils.validate_dict_values(self.mappings) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.mappings, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts('Substitution:') @@ -1064,10 +1036,6 @@ class RelationshipBase(InstanceModelMixin): utils.validate_dict_values(self.properties) utils.validate_dict_values(self.interfaces) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - utils.coerce_dict_values(container, self.interfaces, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() if self.name: @@ -1186,10 +1154,7 @@ class CapabilityBase(InstanceModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() console.puts(context.style.node(self.name)) with context.style.indent: @@ -1296,10 +1261,6 @@ class InterfaceBase(InstanceModelMixin): utils.validate_dict_values(self.inputs) utils.validate_dict_values(self.operations) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.inputs, report_issues) - utils.coerce_dict_values(container, self.operations, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts(context.style.node(self.name)) @@ -1413,9 +1374,6 @@ class OperationBase(InstanceModelMixin): # TODO must be associated with interface or service utils.validate_dict_values(self.inputs) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.inputs, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts(context.style.node(self.name)) @@ -1527,9 +1485,6 @@ class ArtifactBase(InstanceModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() console.puts(context.style.node(self.name)) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8c612f37/aria/modeling/service_template.py ---------------------------------------------------------------------- diff --git a/aria/modeling/service_template.py b/aria/modeling/service_template.py index fb77bb8..0860fa5 100644 --- a/aria/modeling/service_template.py +++ b/aria/modeling/service_template.py @@ -305,19 +305,9 @@ class ServiceTemplateBase(TemplateModelMixin): # pylint: disable=too-many-public if self.artifact_types is not None: self.artifact_types.validate() - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.meta_data, report_issues) - utils.coerce_dict_values(container, self.node_templates, report_issues) - utils.coerce_dict_values(container, self.group_templates, report_issues) - utils.coerce_dict_values(container, self.policy_templates, report_issues) - if self.substitution_template is not None: - self.substitution_template.coerce_values(container, report_issues) - utils.coerce_dict_values(container, self.inputs, report_issues) - utils.coerce_dict_values(container, self.outputs, report_issues) - utils.coerce_dict_values(container, self.workflow_templates, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() + if self.description is not None: console.puts(context.style.meta(self.description)) utils.dump_dict_values(self.meta_data, 'Metadata') @@ -515,15 +505,9 @@ class NodeTemplateBase(TemplateModelMixin): utils.validate_dict_values(self.capability_templates) utils.validate_list_values(self.requirement_templates) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - utils.coerce_dict_values(self, self.interface_templates, report_issues) - utils.coerce_dict_values(self, self.artifact_templates, report_issues) - utils.coerce_dict_values(self, self.capability_templates, report_issues) - utils.coerce_list_values(self, self.requirement_templates, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() + console.puts('Node template: {0}'.format(context.style.node(self.name))) if self.description: console.puts(context.style.meta(self.description)) @@ -633,12 +617,9 @@ class GroupTemplateBase(TemplateModelMixin): utils.validate_dict_values(self.properties) utils.validate_dict_values(self.interface_templates) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - utils.coerce_dict_values(self, self.interface_templates, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + console.puts('Group template: {0}'.format(context.style.node(self.name))) if self.description: console.puts(context.style.meta(self.description)) @@ -738,11 +719,9 @@ class PolicyTemplateBase(TemplateModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + console.puts('Policy template: {0}'.format(context.style.node(self.name))) if self.description: console.puts(context.style.meta(self.description)) @@ -810,11 +789,9 @@ class SubstitutionTemplateBase(TemplateModelMixin): def validate(self): utils.validate_dict_values(self.mappings) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.mappings, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + console.puts('Substitution template:') with context.style.indent: console.puts('Node type: {0}'.format(context.style.type(self.node_type.name))) @@ -1082,12 +1059,9 @@ class RequirementTemplateBase(TemplateModelMixin): if self.relationship_template: self.relationship_template.validate() - def coerce_values(self, container, report_issues): - if self.relationship_template is not None: - self.relationship_template.coerce_values(container, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + if self.name: console.puts(context.style.node(self.name)) else: @@ -1197,12 +1171,9 @@ class RelationshipTemplateBase(TemplateModelMixin): utils.validate_dict_values(self.properties) utils.validate_dict_values(self.interface_templates) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - utils.coerce_dict_values(self, self.interface_templates, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + if self.type is not None: console.puts('Relationship type: {0}'.format(context.style.type(self.type.name))) else: @@ -1325,11 +1296,9 @@ class CapabilityTemplateBase(TemplateModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(self, self.properties, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + console.puts(context.style.node(self.name)) if self.description: console.puts(context.style.meta(self.description)) @@ -1440,12 +1409,9 @@ class InterfaceTemplateBase(TemplateModelMixin): utils.validate_dict_values(self.inputs) utils.validate_dict_values(self.operation_templates) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.inputs, report_issues) - utils.coerce_dict_values(container, self.operation_templates, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() + console.puts(context.style.node(self.name)) if self.description: console.puts(context.style.meta(self.description)) @@ -1560,11 +1526,9 @@ class OperationTemplateBase(TemplateModelMixin): def validate(self): utils.validate_dict_values(self.inputs) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.inputs, report_issues) - def dump(self): context = ConsumptionContext.get_thread_local() + console.puts(context.style.node(self.name)) if self.description: console.puts(context.style.meta(self.description)) @@ -1674,11 +1638,9 @@ class ArtifactTemplateBase(TemplateModelMixin): def validate(self): utils.validate_dict_values(self.properties) - def coerce_values(self, container, report_issues): - utils.coerce_dict_values(container, self.properties, report_issues) - - def dump(self): + def dump(self, context): context = ConsumptionContext.get_thread_local() + console.puts(context.style.node(self.name)) if self.description: console.puts(context.style.meta(self.description))
