From 1a960229d7b9440f74c105d82a4f0c0438594466 Mon Sep 17 00:00:00 2001 From: Aaron Tan Date: Tue, 1 Nov 2016 16:35:04 -0400 Subject: [PATCH] Basic architecture added. --- awx/api/serializers.py | 11 ++++++++--- awx/api/urls.py | 2 +- awx/api/views.py | 7 +++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 4ae7caf54a..08073a7bc0 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2232,17 +2232,22 @@ class WorkflowJobSerializer(LabelsListMixin, UnifiedJobSerializer): #res['notifications'] = reverse('api:system_job_notifications_list', args=(obj.pk,)) res['workflow_nodes'] = reverse('api:workflow_job_workflow_nodes_list', args=(obj.pk,)) res['labels'] = reverse('api:workflow_job_label_list', args=(obj.pk,)) - # TODO: Cancel job - ''' if obj.can_cancel or True: res['cancel'] = reverse('api:workflow_job_cancel', args=(obj.pk,)) - ''' return res # TODO: class WorkflowJobListSerializer(WorkflowJobSerializer, UnifiedJobListSerializer): pass +class WorkflowJobCancelSerializer(WorkflowJobSerializer): + + can_cancel = serializers.BooleanField(read_only=True) + + class Meta: + fields = ('can_cancel',) + + class WorkflowNodeBaseSerializer(BaseSerializer): job_type = serializers.CharField(allow_blank=True, allow_null=True, required=False, default=None) job_tags = serializers.CharField(allow_blank=True, allow_null=True, required=False, default=None) diff --git a/awx/api/urls.py b/awx/api/urls.py index f760506309..bdb9063c39 100644 --- a/awx/api/urls.py +++ b/awx/api/urls.py @@ -273,7 +273,7 @@ workflow_job_urls = patterns('awx.api.views', url(r'^(?P[0-9]+)/$', 'workflow_job_detail'), url(r'^(?P[0-9]+)/workflow_nodes/$', 'workflow_job_workflow_nodes_list'), url(r'^(?P[0-9]+)/labels/$', 'workflow_job_label_list'), -# url(r'^(?P[0-9]+)/cancel/$', 'workflow_job_cancel'), + url(r'^(?P[0-9]+)/cancel/$', 'workflow_job_cancel'), #url(r'^(?P[0-9]+)/notifications/$', 'workflow_job_notifications_list'), ) diff --git a/awx/api/views.py b/awx/api/views.py index d11e394793..ac0d49136d 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2862,6 +2862,13 @@ class WorkflowJobWorkflowNodesList(SubListAPIView): parent_key = 'workflow_job' new_in_310 = True +class WorkflowJobCancel(RetrieveAPIView): + + model = WorkflowJob + serializer_class = WorkflowJobCancelSerializer + is_job_cancel = True + new_in_310 = True + class SystemJobTemplateList(ListAPIView): model = SystemJobTemplate