From 63d6003b3d86c734706f0446b6d421a9af90c587 Mon Sep 17 00:00:00 2001 From: Mathieu Velten Date: Fri, 1 Jul 2016 12:08:15 +0200 Subject: [PATCH] Don't return list in a parameter as this : try to translate the elements of the list. Change-Id: I515c806a28f63ab902d683a7e8260fcd029d585f --- translator/hot/translate_node_templates.py | 10 +++++++++- .../data/hot_output/hot_get_functions_semantic.yaml | 4 ++++ .../tests/data/test_tosca_get_functions_semantic.yaml | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/translator/hot/translate_node_templates.py b/translator/hot/translate_node_templates.py index dfb77569..d8e7e483 100644 --- a/translator/hot/translate_node_templates.py +++ b/translator/hot/translate_node_templates.py @@ -135,7 +135,7 @@ log = logging.getLogger('heat-translator') TOSCA_TO_HOT_TYPE = _generate_type_map() -BASE_TYPES = six.string_types + six.integer_types + (dict, list, OrderedDict) +BASE_TYPES = six.string_types + six.integer_types + (dict, OrderedDict) class TranslateNodeTemplates(object): @@ -415,6 +415,14 @@ class TranslateNodeTemplates(object): if res: return res + if isinstance(param_value, list): + translated_list = [] + for elem in param_value: + translated_elem = self.translate_param_value(elem, resource) + if translated_elem: + translated_list.append(translated_elem) + return translated_list + if isinstance(param_value, BASE_TYPES): return param_value diff --git a/translator/tests/data/hot_output/hot_get_functions_semantic.yaml b/translator/tests/data/hot_output/hot_get_functions_semantic.yaml index eaedea5e..318a739b 100644 --- a/translator/tests/data/hot_output/hot_get_functions_semantic.yaml +++ b/translator/tests/data/hot_output/hot_get_functions_semantic.yaml @@ -46,3 +46,7 @@ outputs: template: $s0$s1$s2 static_map_val: value: static_value + test_list_of_functions: + value: + - get_input: map_val + - static_value diff --git a/translator/tests/data/test_tosca_get_functions_semantic.yaml b/translator/tests/data/test_tosca_get_functions_semantic.yaml index b5451b07..2a769784 100644 --- a/translator/tests/data/test_tosca_get_functions_semantic.yaml +++ b/translator/tests/data/test_tosca_get_functions_semantic.yaml @@ -79,3 +79,6 @@ topology_template: concat_map_val: value: { concat: [ 'http://', { get_property: [ myapp, myfeature, my_map, test_key ] }, ':8080' ] } + + test_list_of_functions: + value: [ { get_property: [ myapp, myfeature, my_map, test_key ] }, { get_property: [ myapp, myfeature, my_map, test_key_static ] } ]