diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index 037c71b39c..d2a69918ca 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -735,7 +735,8 @@ def net(cls): 'dependencies': { 'ssh_key_unlock': ['ssh_key_data'], 'authorize_password': ['authorize'], - } + }, + 'required': ['username'], } ) diff --git a/awx/main/tests/functional/api/test_credential.py b/awx/main/tests/functional/api/test_credential.py index ac9c1be960..fbd8889a06 100644 --- a/awx/main/tests/functional/api/test_credential.py +++ b/awx/main/tests/functional/api/test_credential.py @@ -748,6 +748,7 @@ def test_falsey_field_data(get, post, organization, admin, field_value): 'credential_type': net.pk, 'organization': organization.id, 'inputs': { + 'username': 'joe-user', # username is required 'authorize': field_value } } diff --git a/awx/main/tests/functional/test_credential.py b/awx/main/tests/functional/test_credential.py index cdb54c2265..4a51565d04 100644 --- a/awx/main/tests/functional/test_credential.py +++ b/awx/main/tests/functional/test_credential.py @@ -226,7 +226,7 @@ def test_credential_creation_validation_failure(organization_factory, inputs): [EXAMPLE_PRIVATE_KEY.replace('=', '\u003d'), None, True], # automatically fix JSON-encoded GCE keys ]) def test_ssh_key_data_validation(organization, kind, ssh_key_data, ssh_key_unlock, valid): - inputs = {} + inputs = {'username': 'joe-user'} if ssh_key_data: inputs['ssh_key_data'] = ssh_key_data if ssh_key_unlock: