diff --git a/awx/api/views.py b/awx/api/views.py index ea3695cf71..754ca9c02a 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -1480,11 +1480,13 @@ class JobTemplateLaunch(GenericAPIView): if validation_errors: return Response(dict(errors=validation_errors), status=status.HTTP_400_BAD_REQUEST) + if obj.credential is None and ('credential' not in request.DATA and 'credential_id' not in request.DATA): + return Response(dict(errors="Credential not provided"), status=status.HTTP_400_BAD_REQUEST) new_job = obj.create_unified_job(**request.DATA) result = new_job.signal_start(**request.DATA) if not result: data = dict(passwords_needed_to_start=new_job.passwords_needed_to_start) - # TODO, this scenario leaves an orphaned "new" job. Should we delete it? + new_job.delete() return Response(data, status=status.HTTP_400_BAD_REQUEST) else: data = dict(job=new_job.id)