daniel-lynch / daniel_lynch.passbolt

Passbolt Ansible collection
https://galaxy.ansible.com/daniel_lynch/passbolt
GNU General Public License v3.0
6 stars 7 forks source link

share_password module fails when groups parameter is missing #12

Closed tombayo closed 1 month ago

tombayo commented 3 months ago

The documentation states the groups-parameter is only required when users-list is missing.

However, the following task seems to fail due to a missing groups-parameter:

- name: Share password
  delegate_to: localhost
  daniel_lynch.passbolt.share_password:
    passbolt_uri: "{{ PASSBOLT_BASE_URL }}"
    gpgkey: "{{ PASSBOLT_PRIVATE_KEY }}"
    passphrase: "{{ PASSBOLT_PASSPHRASE }}"
    name: ansible-test-password
    users:
      - mail@domain.com

Error output below (with -vvv):

TASK [Share password] ***********************************************************************************************
task path: /root/toolchain/playbooks/test-passbolt/main.yml:44
Read vars_file '../../common_vars/passbolt.secrets.yml'
Read vars_file 'vars/main.yml'
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir "` echo /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948 `" && echo ansible-tmp-1720698949.6198242-209-14222056059948="` echo /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948 `" ) && sleep 0'
Using module file /root/.ansible/collections/ansible_collections/daniel_lynch/passbolt/plugins/modules/share_password.py
<localhost> PUT /root/.ansible/tmp/ansible-local-1l0ffhi3q/tmpxaypvanp TO /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/ /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/local/bin/python /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py", line 107, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py", line 99, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py", line 47, in invoke_module
    runpy.run_module(mod_name='ansible_collections.daniel_lynch.passbolt.plugins.modules.share_password', init_globals=dict(_module_fqn='ansible_collections.daniel_lynch.passbolt.plugins.modules.share_password', _modlib_path=modlib_path),
  File "/usr/local/lib/python3.10/runpy.py", line 224, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/local/lib/python3.10/runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_daniel_lynch.passbolt.share_password_payload_oo1rhxa_/ansible_daniel_lynch.passbolt.share_password_payload.zip/ansible_collections/daniel_lynch/passbolt/plugins/modules/share_password.py", line 160, in <module>
  File "/tmp/ansible_daniel_lynch.passbolt.share_password_payload_oo1rhxa_/ansible_daniel_lynch.passbolt.share_password_payload.zip/ansible_collections/daniel_lynch/passbolt/plugins/modules/share_password.py", line 150, in main
  File "/usr/local/lib/python3.10/site-packages/passbolt/passbolt.py", line 369, in sharepassword
    raise ValueError("groups must be a list")
ValueError: groups must be a list
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1720698949.6198242-209-14222056059948/AnsiballZ_share_password.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.daniel_lynch.passbolt.plugins.modules.share_password', init_globals=dict(_module_fqn='ansible_collections.daniel_lynch.passbolt.plugins.modules.share_password', _modlib_path=modlib_path),\n  File \"/usr/local/lib/python3.10/runpy.py\", line 224, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/local/lib/python3.10/runpy.py\", line 96, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/local/lib/python3.10/runpy.py\", line 86, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_daniel_lynch.passbolt.share_password_payload_oo1rhxa_/ansible_daniel_lynch.passbolt.share_password_payload.zip/ansible_collections/daniel_lynch/passbolt/plugins/modules/share_password.py\", line 160, in <module>\n  File \"/tmp/ansible_daniel_lynch.passbolt.share_password_payload_oo1rhxa_/ansible_daniel_lynch.passbolt.share_password_payload.zip/ansible_collections/daniel_lynch/passbolt/plugins/modules/share_password.py\", line 150, in main\n  File \"/usr/local/lib/python3.10/site-packages/passbolt/passbolt.py\", line 369, in sharepassword\n    raise ValueError(\"groups must be a list\")\nValueError: groups must be a list\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

Please let me know if any additional information is needed.