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))

Reply via email to