From 495d6e98871b35ecfe27c4bb2edb9d409b7ddda6 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Sat, 26 Aug 2017 16:05:33 -0400 Subject: [PATCH] remove job start endpoint in v2 --- awx/api/serializers.py | 2 +- awx/api/urls.py | 2 +- awx/api/views.py | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index b580f57ec3..74a1c78112 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2525,7 +2525,7 @@ class JobSerializer(UnifiedJobSerializer, JobOptionsSerializer): if obj.job_template: res['job_template'] = self.reverse('api:job_template_detail', kwargs={'pk': obj.job_template.pk}) - if obj.can_start or True: + if (obj.can_start or True) and self.version == 1: # TODO: remove in 3.3 res['start'] = self.reverse('api:job_start', kwargs={'pk': obj.pk}) if obj.can_cancel or True: res['cancel'] = self.reverse('api:job_cancel', kwargs={'pk': obj.pk}) diff --git a/awx/api/urls.py b/awx/api/urls.py index a21d1df9ab..f2eb18777f 100644 --- a/awx/api/urls.py +++ b/awx/api/urls.py @@ -215,7 +215,7 @@ job_template_urls = patterns('awx.api.views', job_urls = patterns('awx.api.views', url(r'^$', 'job_list'), url(r'^(?P[0-9]+)/$', 'job_detail'), - url(r'^(?P[0-9]+)/start/$', 'job_start'), + url(r'^(?P[0-9]+)/start/$', 'job_start'), # TODO: remove in 3.3 url(r'^(?P[0-9]+)/cancel/$', 'job_cancel'), url(r'^(?P[0-9]+)/relaunch/$', 'job_relaunch'), url(r'^(?P[0-9]+)/job_host_summaries/$', 'job_job_host_summaries_list'), diff --git a/awx/api/views.py b/awx/api/views.py index 16e9efe17a..0930e5e71b 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -3795,6 +3795,7 @@ class JobActivityStreamList(ActivityStreamEnforcementMixin, SubListAPIView): new_in_145 = True +# TODO: remove endpoint in 3.3 class JobStart(GenericAPIView): model = Job @@ -3802,7 +3803,13 @@ class JobStart(GenericAPIView): is_job_start = True deprecated = True + def v2_not_allowed(self): + return Response({'detail': 'Action only possible through v1 API.'}, + status=status.HTTP_404_NOT_FOUND) + def get(self, request, *args, **kwargs): + if get_request_version(request) > 1: + return self.v2_not_allowed() obj = self.get_object() data = dict( can_start=obj.can_start, @@ -3813,6 +3820,8 @@ class JobStart(GenericAPIView): return Response(data) def post(self, request, *args, **kwargs): + if get_request_version(request) > 1: + return self.v2_not_allowed() obj = self.get_object() if obj.can_start: result = obj.signal_start(**request.data)