diff --git a/lib/ansible/plugins/test/core.py b/lib/ansible/plugins/test/core.py index 641172b91c..1947fc13b8 100644 --- a/lib/ansible/plugins/test/core.py +++ b/lib/ansible/plugins/test/core.py @@ -84,6 +84,15 @@ def search(value, pattern='', ignorecase=False, multiline=False): ''' Perform a `re.search` returning a boolean ''' return regex(value, pattern, ignorecase, multiline, 'search') +def undefined(a): + ''' Test if a variable is undefined ''' + from jinja2.runtime import Undefined + return isinstance(a, Undefined) + +def defined(a): + ''' Test if a variable is defined ''' + return not undefined(a) + class TestModule(object): ''' Ansible core jinja2 tests ''' @@ -107,4 +116,8 @@ class TestModule(object): 'match': match, 'search': search, 'regex': regex, + + # variable testing + 'undefined': undefined, + 'defined': defined, }