diff --git a/heat/engine/hot/functions.py b/heat/engine/hot/functions.py index 33b75f4e4d..a309392b31 100644 --- a/heat/engine/hot/functions.py +++ b/heat/engine/hot/functions.py @@ -1643,12 +1643,14 @@ class ListConcat(function.Function): for m in args: ret_list.extend(ensure_list(m)) - if self._unique: - for i in ret_list: - while ret_list.count(i) > 1: - del ret_list[ret_list.index(i)] + if not self._unique: + return ret_list - return ret_list + unique_list = [] + for item in ret_list: + if item not in unique_list: + unique_list.append(item) + return unique_list class ListConcatUnique(ListConcat): diff --git a/heat/tests/test_hot.py b/heat/tests/test_hot.py index a0ec62ae82..a4f4c3d32a 100644 --- a/heat/tests/test_hot.py +++ b/heat/tests/test_hot.py @@ -2399,7 +2399,7 @@ resources: self.assertEqual(snippet_resolved, resolved) def test_list_concat_unique(self): - snippet = {'list_concat_unique': [['v1', 'v2'], ['v2', 'v3']]} + snippet = {'list_concat_unique': [['v1', 'v2'], ['v1', 'v3']]} snippet_resolved = ['v1', 'v2', 'v3'] tmpl = template.Template(hot_pike_tpl_empty) resolved = self.resolve(snippet, tmpl)