diff --git a/lib/ansible/utils/__init__.py b/lib/ansible/utils/__init__.py index 1800a35534f..c9d26e25646 100644 --- a/lib/ansible/utils/__init__.py +++ b/lib/ansible/utils/__init__.py @@ -1003,21 +1003,22 @@ def is_list_of_strings(items): return False return True -def _listify(a): - if not isinstance(a, (list, tuple)): - return [a,] - else: - return a - def list_union(a, b): - set_a = set(_listify(a)) - set_b = set(_listify(b)) - return list(set_a.union(set_b)) + result = [] + for x in a: + if x not in result: + result.append(x) + for x in b: + if x not in result: + result.append(x) + return result def list_intersection(a, b): - set_a = set(_listify(a)) - set_b = set(_listify(b)) - return list(set_a.intersection(set_b)) + result = [] + for x in a: + if x in b and x not in result: + result.append(x) + return result def safe_eval(expr, locals={}, include_exceptions=False): '''