Fixed log of vault data return when retrieving to a file.

When retrieving data from a vault using `out` to store the data in a
file resulted is random characters being returned and logged. These
characters could generate a traceback print from Ansible's logger,
without breaking the script.

The reason for that is that the result from `vault_retrive` was being
processed when it was not needed, and data was beeing returned, when
it shouldn't.

This patch fixes this behavior by supressing the return data when `data`
is not available, and only raising an error if it should be available.
This commit is contained in:
Rafael Guterres Jeffman
2020-09-03 15:59:34 -03:00
parent 75d815e745
commit 1f66660995
5 changed files with 9 additions and 11 deletions

View File

@@ -923,14 +923,12 @@ def main():
elif command == 'vault_retrieve':
if 'result' not in result:
raise Exception("No result obtained.")
if 'data' in result['result']:
data_return = exit_args.setdefault('vault', {})
data_return['data'] = result['result']['data']
elif 'vault_data' in result['result']:
data_return = exit_args.setdefault('vault', {})
data_return['data'] = result['result']['vault_data']
if "data" in result["result"]:
data_return = exit_args.setdefault("vault", {})
data_return["data"] = result["result"]["data"]
else:
raise Exception("No data retrieved.")
if not datafile_out:
raise Exception("No data retrieved.")
changed = False
else:
if "completed" in result: