mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 01:17:37 -02:30
Merge pull request #920 from ryanpetrello/fix-914
add vault_id to launch endpoints default vault credentials
This commit is contained in:
@@ -3646,15 +3646,16 @@ class JobLaunchSerializer(BaseSerializer):
|
|||||||
id=getattrd(obj, '%s.pk' % field_name, None))
|
id=getattrd(obj, '%s.pk' % field_name, None))
|
||||||
elif field_name == 'credentials':
|
elif field_name == 'credentials':
|
||||||
if self.version > 1:
|
if self.version > 1:
|
||||||
defaults_dict[field_name] = [
|
for cred in obj.credentials.all():
|
||||||
dict(
|
cred_dict = dict(
|
||||||
id=cred.id,
|
id=cred.id,
|
||||||
name=cred.name,
|
name=cred.name,
|
||||||
credential_type=cred.credential_type.pk,
|
credential_type=cred.credential_type.pk,
|
||||||
passwords_needed=cred.passwords_needed
|
passwords_needed=cred.passwords_needed
|
||||||
)
|
)
|
||||||
for cred in obj.credentials.all()
|
if cred.credential_type.managed_by_tower and 'vault_id' in cred.credential_type.defined_fields:
|
||||||
]
|
cred_dict['vault_id'] = cred.inputs.get('vault_id') or None
|
||||||
|
defaults_dict.setdefault(field_name, []).append(cred_dict)
|
||||||
else:
|
else:
|
||||||
defaults_dict[field_name] = getattr(obj, field_name)
|
defaults_dict[field_name] = getattr(obj, field_name)
|
||||||
return defaults_dict
|
return defaults_dict
|
||||||
|
|||||||
@@ -403,6 +403,22 @@ def test_job_launch_fails_with_missing_multivault_password(machine_credential, v
|
|||||||
|
|
||||||
url = reverse('api:job_template_launch', kwargs={'pk': deploy_jobtemplate.pk})
|
url = reverse('api:job_template_launch', kwargs={'pk': deploy_jobtemplate.pk})
|
||||||
resp = get(url, rando, expect=200)
|
resp = get(url, rando, expect=200)
|
||||||
|
|
||||||
|
assert {
|
||||||
|
'credential_type': vault_cred_first.credential_type_id,
|
||||||
|
'passwords_needed': ['vault_password.abc'],
|
||||||
|
'vault_id': u'abc',
|
||||||
|
'name': u'Vault #1',
|
||||||
|
'id': vault_cred_first.id
|
||||||
|
} in resp.data['defaults']['credentials']
|
||||||
|
assert {
|
||||||
|
'credential_type': vault_cred_second.credential_type_id,
|
||||||
|
'passwords_needed': ['vault_password.xyz'],
|
||||||
|
'vault_id': u'xyz',
|
||||||
|
'name': u'Vault #2',
|
||||||
|
'id': vault_cred_second.id
|
||||||
|
} in resp.data['defaults']['credentials']
|
||||||
|
|
||||||
assert resp.data['passwords_needed_to_start'] == ['vault_password.abc', 'vault_password.xyz']
|
assert resp.data['passwords_needed_to_start'] == ['vault_password.abc', 'vault_password.xyz']
|
||||||
assert sum([
|
assert sum([
|
||||||
cred['passwords_needed'] for cred in resp.data['defaults']['credentials']
|
cred['passwords_needed'] for cred in resp.data['defaults']['credentials']
|
||||||
|
|||||||
Reference in New Issue
Block a user