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
