mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-04 20:32:45 +00:00
Ensure when warning is checked before expanding (#25092)
The `when` condition templating warning should only happen
if the condition itself contains templating, not if variables
in the condition are themselves composed through templating
Before
```
vars:
x: hello
y: "{{ x }}"
tasks:
- debug: msg=hello
when: y
```
would fire a warning because `y` would get expanded to `{{ x }}`.
This checks whether a warning is required prior to expansion.
This commit is contained in:
@@ -127,6 +127,11 @@ class Conditional:
|
||||
if conditional is None or conditional == '':
|
||||
return True
|
||||
|
||||
if templar.is_template(conditional):
|
||||
display.warning('when statements should not include jinja2 '
|
||||
'templating delimiters such as {{ }} or {%% %%}. '
|
||||
'Found: %s' % conditional)
|
||||
|
||||
# pull the "bare" var out, which allows for nested conditionals
|
||||
# and things like:
|
||||
# - assert:
|
||||
@@ -137,11 +142,6 @@ class Conditional:
|
||||
if conditional in all_vars and VALID_VAR_REGEX.match(conditional):
|
||||
conditional = all_vars[conditional]
|
||||
|
||||
if templar.is_template(conditional):
|
||||
display.warning('when statements should not include jinja2 '
|
||||
'templating delimiters such as {{ }} or {%% %%}. '
|
||||
'Found: %s' % conditional)
|
||||
|
||||
# make sure the templar is using the variables specified with this method
|
||||
templar.set_available_variables(variables=all_vars)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user