Make 'inputs' idempotent in credentials module, add test to check this works

This commit is contained in:
beeankha 2020-08-05 16:44:22 -04:00
parent e20ea5edba
commit dcc500e7bb
2 changed files with 20 additions and 1 deletions

View File

@ -384,19 +384,25 @@ def main():
team_id = module.resolve_name_to_id('teams', team)
# Create credential input from legacy inputs
has_inputs = False
credential_inputs = {}
for legacy_input in OLD_INPUT_NAMES:
if module.params.get(legacy_input) is not None:
has_inputs = True
credential_inputs[legacy_input] = module.params.get(legacy_input)
if inputs:
has_inputs = True
credential_inputs.update(inputs)
# Create the data that gets sent for create and update
credential_fields = {
'name': new_name if new_name else name,
'credential_type': cred_type_id,
'inputs': credential_inputs,
}
if has_inputs:
credential_fields['inputs'] = credential_inputs
if description:
credential_fields['description'] = description
if organization:

View File

@ -191,6 +191,19 @@
that:
- result is changed
- name: Check for inputs idempotency (when "inputs" is blank)
tower_credential:
name: "{{ ssh_cred_name2 }}"
organization: Default
state: present
credential_type: Machine
description: An example SSH credential
register: result
- assert:
that:
- result is not changed
- name: Create a valid SSH credential from lookup source (old school)
tower_credential:
name: "{{ ssh_cred_name3 }}"