Allow empty yaml vars files

Fixes #7843
pull/8003/merge
James Cammarata 11 years ago
parent 51e014d915
commit ff04b2b532

@ -91,10 +91,10 @@ def _load_vars_from_path(path, results, vault_password=None):
# regular file # regular file
elif stat.S_ISREG(pathstat.st_mode): elif stat.S_ISREG(pathstat.st_mode):
data = utils.parse_yaml_from_file(path, vault_password=vault_password) data = utils.parse_yaml_from_file(path, vault_password=vault_password)
if type(data) != dict: if data and type(data) != dict:
raise errors.AnsibleError( raise errors.AnsibleError("%s must be stored as a dictionary/hash" % path)
"%s must be stored as a dictionary/hash" % path) elif data is None:
data = {}
# combine vars overrides by default but can be configured to do a # combine vars overrides by default but can be configured to do a
# hash merge in settings # hash merge in settings
results = utils.combine_vars(results, data) results = utils.combine_vars(results, data)

@ -332,7 +332,6 @@ class Play(object):
if new_default_vars: if new_default_vars:
if type(new_default_vars) != dict: if type(new_default_vars) != dict:
raise errors.AnsibleError("%s must be stored as dictionary/hash: %s" % (filename, type(new_default_vars))) raise errors.AnsibleError("%s must be stored as dictionary/hash: %s" % (filename, type(new_default_vars)))
default_vars = utils.combine_vars(default_vars, new_default_vars) default_vars = utils.combine_vars(default_vars, new_default_vars)
return default_vars return default_vars

@ -44,8 +44,10 @@ class ActionModule(object):
if os.path.exists(source): if os.path.exists(source):
data = utils.parse_yaml_from_file(source, vault_password=self.runner.vault_pass) data = utils.parse_yaml_from_file(source, vault_password=self.runner.vault_pass)
if type(data) != dict: if data and type(data) != dict:
raise errors.AnsibleError("%s must be stored as a dictionary/hash" % source) raise errors.AnsibleError("%s must be stored as a dictionary/hash" % source)
elif data is None:
data = {}
result = dict(ansible_facts=data) result = dict(ansible_facts=data)
return ReturnData(conn=conn, comm_ok=True, result=result) return ReturnData(conn=conn, comm_ok=True, result=result)
else: else:

Loading…
Cancel
Save