Implement model/view/launch paradigm for shard/split job templates

This commit is contained in:
Matthew Jones
2018-08-14 12:12:07 -04:00
committed by AlanCoding
parent 89c2038ea3
commit 0b1776098b
7 changed files with 82 additions and 6 deletions

View File

@@ -3011,7 +3011,7 @@ class JobTemplateSerializer(JobTemplateMixin, UnifiedJobTemplateSerializer, JobO
fields = ('*', 'host_config_key', 'ask_diff_mode_on_launch', 'ask_variables_on_launch', 'ask_limit_on_launch', 'ask_tags_on_launch',
'ask_skip_tags_on_launch', 'ask_job_type_on_launch', 'ask_verbosity_on_launch', 'ask_inventory_on_launch',
'ask_credential_on_launch', 'survey_enabled', 'become_enabled', 'diff_mode',
'allow_simultaneous', 'custom_virtualenv')
'allow_simultaneous', 'custom_virtualenv', 'job_shard_count')
def get_related(self, obj):
res = super(JobTemplateSerializer, self).get_related(obj)

View File

@@ -2903,7 +2903,7 @@ class JobTemplateLaunch(RetrieveAPIView):
raise PermissionDenied()
passwords = serializer.validated_data.pop('credential_passwords', {})
new_job = obj.create_unified_job(**serializer.validated_data)
new_job = obj.create_job(**serializer.validated_data)
result = new_job.signal_start(**passwords)
if not result:
@@ -2914,7 +2914,10 @@ class JobTemplateLaunch(RetrieveAPIView):
data = OrderedDict()
data['job'] = new_job.id
data['ignored_fields'] = self.sanitize_for_response(ignored_fields)
data.update(JobSerializer(new_job, context=self.get_serializer_context()).to_representation(new_job))
if isinstance(new_job, WorkflowJob):
data.update(WorkflowJobSerializer(new_job, context=self.get_serializer_context()).to_representation(new_job))
else:
data.update(JobSerializer(new_job, context=self.get_serializer_context()).to_representation(new_job))
headers = {'Location': new_job.get_absolute_url(request)}
return Response(data, status=status.HTTP_201_CREATED, headers=headers)