mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-07-31 20:04:45 +00:00
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:
@@ -246,7 +246,7 @@ There is only a return value if `state` is `retrieved`.
|
|||||||
|
|
||||||
Variable | Description | Returned When
|
Variable | Description | Returned When
|
||||||
-------- | ----------- | -------------
|
-------- | ----------- | -------------
|
||||||
`vault` | Vault dict with archived data. (dict) <br>Options: | If `state` is `retrieved`.
|
`vault` | Vault dict with archived data. (dict) <br>Options: | If `state` is `retrieved` and `out` is not defined.
|
||||||
| `data` - The vault data. | Always
|
| `data` - The vault data. | Always
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -923,14 +923,12 @@ def main():
|
|||||||
elif command == 'vault_retrieve':
|
elif command == 'vault_retrieve':
|
||||||
if 'result' not in result:
|
if 'result' not in result:
|
||||||
raise Exception("No result obtained.")
|
raise Exception("No result obtained.")
|
||||||
if 'data' in result['result']:
|
if "data" in result["result"]:
|
||||||
data_return = exit_args.setdefault('vault', {})
|
data_return = exit_args.setdefault("vault", {})
|
||||||
data_return['data'] = result['result']['data']
|
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']
|
|
||||||
else:
|
else:
|
||||||
raise Exception("No data retrieved.")
|
if not datafile_out:
|
||||||
|
raise Exception("No data retrieved.")
|
||||||
changed = False
|
changed = False
|
||||||
else:
|
else:
|
||||||
if "completed" in result:
|
if "completed" in result:
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
private_key: "{{ lookup('file', 'private.pem') | b64encode }}"
|
private_key: "{{ lookup('file', 'private.pem') | b64encode }}"
|
||||||
state: retrieved
|
state: retrieved
|
||||||
register: result
|
register: result
|
||||||
failed_when: result.changed
|
failed_when: result.changed or result.failed or (result.vault.data | default(false))
|
||||||
|
|
||||||
- name: Verify retrieved data.
|
- name: Verify retrieved data.
|
||||||
slurp:
|
slurp:
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
out: "{{ ansible_env.HOME }}/data.txt"
|
out: "{{ ansible_env.HOME }}/data.txt"
|
||||||
state: retrieved
|
state: retrieved
|
||||||
register: result
|
register: result
|
||||||
failed_when: result.changed
|
failed_when: result.changed or result.failed or (result.vault.data | default(false))
|
||||||
|
|
||||||
- name: Verify retrieved data.
|
- name: Verify retrieved data.
|
||||||
slurp:
|
slurp:
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
out: "{{ ansible_env.HOME }}/data.txt"
|
out: "{{ ansible_env.HOME }}/data.txt"
|
||||||
state: retrieved
|
state: retrieved
|
||||||
register: result
|
register: result
|
||||||
failed_when: result.changed
|
failed_when: result.changed or result.failed or (result.vault.data | default(false))
|
||||||
|
|
||||||
- name: Verify retrieved data.
|
- name: Verify retrieved data.
|
||||||
slurp:
|
slurp:
|
||||||
|
|||||||
Reference in New Issue
Block a user