From 07ba7e2013daca780c2f628bf6a247dab4cdd881 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 1 Nov 2012 18:52:13 +0100 Subject: [PATCH 1/2] Return original string for non-matched vars --- lib/ansible/template.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ansible/template.py b/lib/ansible/template.py index 3d380b837d0..60cdd4f1246 100644 --- a/lib/ansible/template.py +++ b/lib/ansible/template.py @@ -187,7 +187,10 @@ def varReplaceWithItems(basedir, varname, vars): if not m: return varname if m['start'] == 0 and m['end'] == len(varname): - return varReplaceWithItems(basedir, m['replacement'], vars) + if m['replacement'] is not None: + return varReplaceWithItems(basedir, m['replacement'], vars) + else: + return varname else: return template(basedir, varname, vars) elif isinstance(varname, (list, tuple)): From 56314f7225ab3e342c7ffead3dc6de3eb639d473 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 1 Nov 2012 19:23:08 +0100 Subject: [PATCH 2/2] Add test case for non-existing variable in varReplaceWithItems --- test/TestUtils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/TestUtils.py b/test/TestUtils.py index 5c1df13bcb3..7232ee680b2 100644 --- a/test/TestUtils.py +++ b/test/TestUtils.py @@ -324,6 +324,10 @@ class TestUtils(unittest.TestCase): res = ansible.utils.varReplaceWithItems(None, template, vars) assert sorted(res) == sorted(vars['alphas']) + template = '${data.nonexisting}' + res = ansible.utils.varReplaceWithItems(None, template, vars) + assert res == template + ##################################### ### Template function tests