Skip to content
Snippets Groups Projects
Commit b1857f3d authored by Rafael Guterres Jeffman's avatar Rafael Guterres Jeffman
Browse files

Fix symmetric vault password change when using password_files.

When using changing passwords, using password files, the file name was
being used as the password, and not its content. This patch fixes the
behavior to use the contents of the password file.

Tests have been added to ensure the correct behavior.
parent af37ad97
No related branches found
No related tags found
No related merge requests found
...@@ -565,17 +565,16 @@ def change_password(module, res_find, password, password_file, new_password, ...@@ -565,17 +565,16 @@ def change_password(module, res_find, password, password_file, new_password,
if password: if password:
args["password"] = password args["password"] = password
if password_file: if password_file:
args["password"] = password_file args["password_file"] = password_file
# retrieve current stored data # retrieve current stored data
result = api_command(module, 'vault_retrieve', name, args) result = api_command(module, 'vault_retrieve', name, args)
args['data'] = result['result']['data']
# modify arguments to store data with new password. # modify arguments to store data with new password.
if password: args = {"override_password": True, "data": result['result']['data']}
if new_password:
args["password"] = new_password args["password"] = new_password
if password_file: if new_password_file:
args["password"] = new_password_file args["password_file"] = new_password_file
args["override_password"] = True
# return the command to store data with the new password. # return the command to store data with the new password.
return [(name, "vault_archive", args)] return [(name, "vault_archive", args)]
......
...@@ -295,5 +295,42 @@ ...@@ -295,5 +295,42 @@
register: result register: result
failed_when: not result.failed or "Cannot modify password of inexistent vault" not in result.msg failed_when: not result.failed or "Cannot modify password of inexistent vault" not in result.msg
- name: Ensure symmetric vault is present
ipavault:
ipaadmin_password: SomeADMINpassword
name: symvault
vault_type: symmetric
password: APasswordToChange
vault_data: Hello World.
register: result
failed_when: not result.changed or result.failed
- name: Change symmetric vault password, using password file.
ipavault:
ipaadmin_password: SomeADMINpassword
name: symvault
password: APasswordToChange
new_password_file: "{{ ansible_env.HOME }}/password.txt"
vault_type: symmetric
register: result
failed_when: not result.changed or result.failed
- name: Retrieve data from symmetric vault.
ipavault:
ipaadmin_password: SomeADMINpassword
name: symvault
password: SomeVAULTpassword
state: retrieved
register: result
failed_when: result.vault.data != 'Hello World.' or result.changed
- name: Ensure symmetric vault is absent
ipavault:
ipaadmin_password: SomeADMINpassword
name: symvault
state: absent
register: result
failed_when: not result.changed
- name: Cleanup testing environment. - name: Cleanup testing environment.
import_tasks: env_cleanup.yml import_tasks: env_cleanup.yml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment