In Ansible Tower/AWX, there are three kinds of objects that can be tied
to custom python virtual environment:
- job template
- project
- organization
This patch updates the three ansible modules that creates those objects
so that the 'custom_virtualenv' attribute can be set if specified.
Testing Done: via a playbook, test organization, projet then template creation
without any 'custom_virtualenv' attribute specified. Check that the
resources get created and that their python env is set to default. Then
re-do the same test but this time with the 'custom_virtualenv' attribute
specified. Ensure in AWX UI that those resources have the right
'custom_virtualenv' set.
In the 'tower_credential' module, when the credential 'kind' is set to
'vault', the code expects the other parameter 'vault_id' to be set.
Unfortunately, in the module 'credential_type_for_v1_kind' method, the
'kind' parameter is popped, i.e. remove from the module dict of
parameters leading to the following error:
> Parameter 'vault_id' is only valid if parameter 'kind' is specified as
'vault'
Fixes: #45644, #61324
Testing Done: Manually create a playbook with a task as follow
- name: Create vault with ID 'bar' exists
tower_credential:
name: Foobar vault
organization: Foobar
kind: vault
vault_id: bar
vault_password: foobar
In the 'tower_credential' module, when the credential 'kind' is set to
'vault', the code expects the other parameter 'vault_id' to be set.
Unfortunately, in the module 'credential_type_for_v1_kind' method, the
'kind' parameter is popped, i.e. remove from the module dict of
parameters leading to the following error:
> Parameter 'vault_id' is only valid if parameter 'kind' is specified as
'vault'
Fixes: #45644, #61324
Testing Done: Manually create a playbook with a task as follow
- name: Create vault with ID 'bar' exists
tower_credential:
name: Foobar vault
organization: Foobar
kind: vault
vault_id: bar
vault_password: foobar