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/367b18bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/367b18bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/367b18bc

Branch: refs/heads/Unified_coerce
Commit: 367b18bc0cc719c13fb19f3c2f486bdd8e4e1785
Parents: dd5bfa9
Author: max-orlov <[email protected]>
Authored: Wed Mar 8 17:02:34 2017 +0200
Committer: max-orlov <[email protected]>
Committed: Sun Mar 12 11:01:27 2017 +0200

----------------------------------------------------------------------
 aria/modeling/mixins.py           | 13 ++++++++-
 aria/modeling/service_instance.py | 45 -------------------------------
 aria/modeling/service_template.py | 49 ----------------------------------
 aria/modeling/utils.py            | 13 ---------
 4 files changed, 12 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/367b18bc/aria/modeling/mixins.py
----------------------------------------------------------------------
diff --git a/aria/modeling/mixins.py b/aria/modeling/mixins.py
index 04497b5..c050fa1 100644
--- a/aria/modeling/mixins.py
+++ b/aria/modeling/mixins.py
@@ -388,7 +388,18 @@ class InstanceModelMixin(ModelMixin):
         pass
 
     def coerce_values(self, context, 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(context, container, report_issues)
+                else:
+                    utils.coerce_value(context, container, value, 
report_issues)
 
     def dump(self, context):
         pass

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/367b18bc/aria/modeling/service_instance.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_instance.py 
b/aria/modeling/service_instance.py
index ba18f73..dd579b3 100644
--- a/aria/modeling/service_instance.py
+++ b/aria/modeling/service_instance.py
@@ -234,17 +234,6 @@ class ServiceBase(InstanceModelMixin): # pylint: 
disable=too-many-public-methods
         utils.validate_dict_values(context, self.outputs)
         utils.validate_dict_values(context, self.workflows)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.meta_data, 
report_issues)
-        utils.coerce_list_values(context, container, self.nodes, report_issues)
-        utils.coerce_list_values(context, container, self.groups, 
report_issues)
-        utils.coerce_list_values(context, container, self.policies, 
report_issues)
-        if self.substitution is not None:
-            self.substitution.coerce_values(context, container, report_issues)
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.outputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.workflows, 
report_issues)
-
     def dump(self, context):
         if self.description is not None:
             console.puts(context.style.meta(self.description))
@@ -553,13 +542,6 @@ class NodeBase(InstanceModelMixin): # pylint: 
disable=too-many-public-methods
         utils.validate_dict_values(context, self.capabilities)
         utils.validate_list_values(context, self.outbound_relationships)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-        utils.coerce_dict_values(context, self, self.interfaces, report_issues)
-        utils.coerce_dict_values(context, self, self.artifacts, report_issues)
-        utils.coerce_dict_values(context, self, self.capabilities, 
report_issues)
-        utils.coerce_list_values(context, self, self.outbound_relationships, 
report_issues)
-
     def dump(self, context):
         console.puts('Node: {0}'.format(context.style.node(self.name)))
         with context.style.indent:
@@ -656,10 +638,6 @@ class GroupBase(InstanceModelMixin):
         utils.validate_dict_values(context, self.properties)
         utils.validate_dict_values(context, self.interfaces)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-        utils.coerce_dict_values(context, container, self.interfaces, 
report_issues)
-
     def dump(self, context):
         console.puts('Group: {0}'.format(context.style.node(self.name)))
         with context.style.indent:
@@ -754,9 +732,6 @@ class PolicyBase(InstanceModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-
     def dump(self, context):
         console.puts('Policy: {0}'.format(context.style.node(self.name)))
         with context.style.indent:
@@ -831,9 +806,6 @@ class SubstitutionBase(InstanceModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.mappings)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.mappings, 
report_issues)
-
     def dump(self, context):
         console.puts('Substitution:')
         with context.style.indent:
@@ -1050,10 +1022,6 @@ class RelationshipBase(InstanceModelMixin):
         utils.validate_dict_values(context, self.properties)
         utils.validate_dict_values(context, self.interfaces)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-        utils.coerce_dict_values(context, container, self.interfaces, 
report_issues)
-
     def dump(self, context):
         if self.name:
             console.puts('{0} ->'.format(context.style.node(self.name)))
@@ -1167,9 +1135,6 @@ class CapabilityBase(InstanceModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         with context.style.indent:
@@ -1279,10 +1244,6 @@ class InterfaceBase(InstanceModelMixin):
         utils.validate_dict_values(context, self.inputs)
         utils.validate_dict_values(context, self.operations)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.operations, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:
@@ -1395,9 +1356,6 @@ class OperationBase(InstanceModelMixin):
         # TODO must be associated with interface or service
         utils.validate_dict_values(context, self.inputs)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:
@@ -1508,9 +1466,6 @@ class ArtifactBase(InstanceModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/367b18bc/aria/modeling/service_template.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_template.py 
b/aria/modeling/service_template.py
index c9a02eb..9debc1c 100644
--- a/aria/modeling/service_template.py
+++ b/aria/modeling/service_template.py
@@ -328,17 +328,6 @@ class ServiceTemplateBase(TemplateModelMixin): # pylint: 
disable=too-many-public
         if self.artifact_types is not None:
             self.artifact_types.validate(context)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.meta_data, 
report_issues)
-        utils.coerce_list_values(context, container, self.node_templates, 
report_issues)
-        utils.coerce_list_values(context, container, self.group_templates, 
report_issues)
-        utils.coerce_list_values(context, container, self.policy_templates, 
report_issues)
-        if self.substitution_template is not None:
-            self.substitution_template.coerce_values(context, container, 
report_issues)
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.outputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.workflow_templates, 
report_issues)
-
     def dump(self, context):
         if self.description is not None:
             console.puts(context.style.meta(self.description))
@@ -526,13 +515,6 @@ class NodeTemplateBase(TemplateModelMixin):
         utils.validate_dict_values(context, self.capability_templates)
         utils.validate_list_values(context, self.requirement_templates)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-        utils.coerce_dict_values(context, self, self.interface_templates, 
report_issues)
-        utils.coerce_dict_values(context, self, self.artifact_templates, 
report_issues)
-        utils.coerce_dict_values(context, self, self.capability_templates, 
report_issues)
-        utils.coerce_list_values(context, self, self.requirement_templates, 
report_issues)
-
     def dump(self, context):
         console.puts('Node template: 
{0}'.format(context.style.node(self.name)))
         if self.description:
@@ -643,10 +625,6 @@ class GroupTemplateBase(TemplateModelMixin):
         utils.validate_dict_values(context, self.properties)
         utils.validate_dict_values(context, self.interface_templates)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-        utils.coerce_dict_values(context, self, self.interface_templates, 
report_issues)
-
     def dump(self, context):
         console.puts('Group template: 
{0}'.format(context.style.node(self.name)))
         if self.description:
@@ -748,9 +726,6 @@ class PolicyTemplateBase(TemplateModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-
     def dump(self, context):
         console.puts('Policy template: 
{0}'.format(context.style.node(self.name)))
         if self.description:
@@ -819,9 +794,6 @@ class SubstitutionTemplateBase(TemplateModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.mappings)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.mappings, report_issues)
-
     def dump(self, context):
         console.puts('Substitution template:')
         with context.style.indent:
@@ -1089,10 +1061,6 @@ class RequirementTemplateBase(TemplateModelMixin):
         if self.relationship_template:
             self.relationship_template.validate(context)
 
-    def coerce_values(self, context, container, report_issues):
-        if self.relationship_template is not None:
-            self.relationship_template.coerce_values(context, container, 
report_issues)
-
     def dump(self, context):
         if self.name:
             console.puts(context.style.node(self.name))
@@ -1200,10 +1168,6 @@ class RelationshipTemplateBase(TemplateModelMixin):
         utils.validate_dict_values(context, self.properties)
         utils.validate_dict_values(context, self.interface_templates)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-        utils.coerce_dict_values(context, self, self.interface_templates, 
report_issues)
-
     def dump(self, context):
         if self.type is not None:
             console.puts('Relationship type: 
{0}'.format(context.style.type(self.type.name)))
@@ -1330,9 +1294,6 @@ class CapabilityTemplateBase(TemplateModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, self, self.properties, report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:
@@ -1446,10 +1407,6 @@ class InterfaceTemplateBase(TemplateModelMixin):
         utils.validate_dict_values(context, self.inputs)
         utils.validate_dict_values(context, self.operation_templates)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-        utils.coerce_dict_values(context, container, self.operation_templates, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:
@@ -1565,9 +1522,6 @@ class OperationTemplateBase(TemplateModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.inputs)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.inputs, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:
@@ -1678,9 +1632,6 @@ class ArtifactTemplateBase(TemplateModelMixin):
     def validate(self, context):
         utils.validate_dict_values(context, self.properties)
 
-    def coerce_values(self, context, container, report_issues):
-        utils.coerce_dict_values(context, container, self.properties, 
report_issues)
-
     def dump(self, context):
         console.puts(context.style.node(self.name))
         if self.description:

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/367b18bc/aria/modeling/utils.py
----------------------------------------------------------------------
diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py
index a071d69..857e81e 100644
--- a/aria/modeling/utils.py
+++ b/aria/modeling/utils.py
@@ -56,19 +56,6 @@ def validate_list_values(context, the_list):
         value.validate(context)
 
 
-def coerce_dict_values(context, container, the_dict, report_issues=False):
-    if not the_dict:
-        return
-    coerce_list_values(context, container, the_dict.itervalues(), 
report_issues)
-
-
-def coerce_list_values(context, container, the_list, report_issues=False):
-    if not the_list:
-        return
-    for value in the_list:
-        value.coerce_values(context, container, report_issues)
-
-
 def instantiate_dict(context, container, the_dict, from_dict):
     if not from_dict:
         return

Reply via email to