fixed environment inheritance

pull/11767/head
Brian Coca 9 years ago
parent 8aa732e0a4
commit ae91cdfc98

@ -310,11 +310,9 @@ class Block(Base, Become, Conditional, Taggable):
''' '''
Override for the 'tags' getattr fetcher, used from Base. Override for the 'tags' getattr fetcher, used from Base.
''' '''
environment = self._attributes['tags'] environment = self._attributes['environment']
if environment is None: if environment is None:
environment = dict() environment = self._get_parent_attribute('environment', extend=True)
environment = self._get_parent_attribute('environment', extend=True)
return environment return environment

@ -218,6 +218,9 @@ class Task(Base, Conditional, Taggable, Become):
Override post validation of vars on the play, as we don't want to Override post validation of vars on the play, as we don't want to
template these too early. template these too early.
''' '''
if value is None:
return dict()
for env_item in value: for env_item in value:
if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys(): if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys():
self._display.deprecated("Using bare variables for environment is deprecated. Update your playbooks so that the environment value uses the full variable syntax ('{{foo}}')") self._display.deprecated("Using bare variables for environment is deprecated. Update your playbooks so that the environment value uses the full variable syntax ('{{foo}}')")
@ -347,11 +350,9 @@ class Task(Base, Conditional, Taggable, Become):
''' '''
Override for the 'tags' getattr fetcher, used from Base. Override for the 'tags' getattr fetcher, used from Base.
''' '''
environment = self._attributes['tags'] environment = self._attributes['environment']
if environment is None: if environment is None:
environment = dict() environment = self._get_parent_attribute('environment')
environment = self._get_parent_attribute('environment', extend=True)
return environment return environment

@ -116,6 +116,8 @@ class ActionBase:
environments = [ environments ] environments = [ environments ]
for environment in environments: for environment in environments:
if environment is None:
continue
if not isinstance(environment, dict): if not isinstance(environment, dict):
raise AnsibleError("environment must be a dictionary, received %s (%s)" % (environment, type(environment))) raise AnsibleError("environment must be a dictionary, received %s (%s)" % (environment, type(environment)))
# very deliberatly using update here instead of combine_vars, as # very deliberatly using update here instead of combine_vars, as

Loading…
Cancel
Save