mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fix incorrect environment processing
it was assumed it could only be a dict or string (it starts out as a list) also a 2nd assumption that bare vars only would appear in one of the dict keys. removed deprecation warnings from here as they should be signaled in the bare conversion itself.
This commit is contained in:
parent
6a62ad6c4b
commit
28cf4bc00b
1 changed files with 15 additions and 5 deletions
|
@ -244,11 +244,21 @@ class Task(Base, Conditional, Taggable, Become):
|
|||
if value is None:
|
||||
return dict()
|
||||
|
||||
elif isinstance(value, list):
|
||||
if len(value) == 1:
|
||||
return templar.template(value[0], convert_bare=True)
|
||||
else:
|
||||
env = []
|
||||
for env_item in value:
|
||||
if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys():
|
||||
display.deprecated("Using bare variables for environment is deprecated."
|
||||
" Update your playbooks so that the environment value uses the full variable syntax ('{{foo}}')")
|
||||
break
|
||||
env[env_item] = templar.template(env_item, convert_bare=True)
|
||||
elif isinstance(value, dict):
|
||||
env = dict()
|
||||
for env_item in value:
|
||||
if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys():
|
||||
env[env_item] = templar.template(value[env_item], convert_bare=True)
|
||||
|
||||
# at this point it should be a simple string
|
||||
return templar.template(value, convert_bare=True)
|
||||
|
||||
def _post_validate_changed_when(self, attr, value, templar):
|
||||
|
|
Loading…
Reference in a new issue