From 13a0184de4e6c0c8f0935bfbd7627b72f142c6e9 Mon Sep 17 00:00:00 2001 From: shangxdy Date: Fri, 19 Aug 2016 02:02:46 +0800 Subject: Judge volume node is error when translate compute node Currently, when translate a compute node in heat-translator, code is below: for requires in requirements: for value in requires.values(): if isinstance(value, dict): for node_name in value.values(): for n in self.nodetemplates: if n.name == node_name: volume_name = node_name break else: # unreachable code ! for n in self.nodetemplates: if n.name == node_name: volume_name = node_name break It's error in nfv tosca because there are more than one requirements, So the unreachable code will reach. Notes: the fix will submit to Openstack community. JIRA:PARSER-92 Change-Id: Ife9c0d28ebe236c04d9d2c02f0025cf774bf6208 Signed-off-by: shangxdy --- .../heat-translator/translator/hot/translate_node_templates.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tosca2heat/heat-translator/translator/hot/translate_node_templates.py b/tosca2heat/heat-translator/translator/hot/translate_node_templates.py index d8e7e48..f32d42b 100644 --- a/tosca2heat/heat-translator/translator/hot/translate_node_templates.py +++ b/tosca2heat/heat-translator/translator/hot/translate_node_templates.py @@ -195,12 +195,16 @@ class TranslateNodeTemplates(object): if isinstance(value, dict): for node_name in value.values(): for n in self.nodetemplates: - if n.name == node_name: + if n.name == node_name and \ + n.is_derived_from( + "tosca.nodes.BlockStorage"): volume_name = node_name break else: # unreachable code ! for n in self.nodetemplates: - if n.name == node_name: + if n.name == value and \ + n.is_derived_from( + "tosca.nodes.BlockStorage"): volume_name = node_name break -- cgit 1.2.3-korg