From a9eee2ea67be0b45cec1cfe84ac760293d9473fa Mon Sep 17 00:00:00 2001 From: shangxdy Date: Tue, 29 Aug 2017 16:42:20 +0800 Subject: Fix exceptions overwritten when nested import service topology Currently exceptions will be overwritten when import nested service topology, the patch will fix the issue. JIRA: PARSER-145 Change-Id: I531755efe55b43aef304fa972773c63613c915ff Signed-off-by: shangxdy --- .../tosca-parser/toscaparser/tosca_template.py | 29 +++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'tosca2heat/tosca-parser/toscaparser/tosca_template.py') diff --git a/tosca2heat/tosca-parser/toscaparser/tosca_template.py b/tosca2heat/tosca-parser/toscaparser/tosca_template.py index 3301999..4832bbb 100644 --- a/tosca2heat/tosca-parser/toscaparser/tosca_template.py +++ b/tosca2heat/tosca-parser/toscaparser/tosca_template.py @@ -236,12 +236,29 @@ class ToscaTemplate(object): if self._is_sub_mapped_node(nodetemplate, tosca_tpl): parsed_params = self._get_params_for_nested_template( nodetemplate) - nested_template = ToscaTemplate( - path=fname, parsed_params=parsed_params, - yaml_dict_tpl=tosca_tpl, - sub_mapped_node_template=nodetemplate, - no_required_paras_valid=self.no_required_paras_valid) - if nested_template._has_substitution_mappings(): + + cache_exeptions = deepcopy(ExceptionCollector.exceptions) + cache_exeptions_state = \ + deepcopy(ExceptionCollector.collecting) + nested_template = None + try: + nrpv = self.no_required_paras_valid + nested_template = ToscaTemplate( + path=fname, parsed_params=parsed_params, + sub_mapped_node_template=nodetemplate, + no_required_paras_valid=nrpv) + except ValidationError as e: + msg = _(' ===== nested service template ===== ') + log.error(msg) + log.error(e.message) + raise e + + ExceptionCollector.exceptions = deepcopy(cache_exeptions) + ExceptionCollector.collecting = \ + deepcopy(cache_exeptions_state) + + if nested_template and \ + nested_template._has_substitution_mappings(): # Record the nested templates in top level template self.nested_tosca_templates_with_topology.\ append(nested_template) -- cgit 1.2.3-korg