mirror of
https://github.com/ansible/awx.git
synced 2026-02-24 14:36:00 -03:30
Execution environments are meaningless for workflows
so, remove them from the API endpoints for workflows. Also, tear out the WFJT.execution_environment step in the resolver. If we want that to be a thing, it ought to be a .default_environment instead.
This commit is contained in:
committed by
Shane McDonald
parent
d1d3711fee
commit
85bb4e976f
@@ -729,11 +729,12 @@ class UnifiedJobTemplateSerializer(BaseSerializer):
|
|||||||
|
|
||||||
if self.is_detail_view:
|
if self.is_detail_view:
|
||||||
resolved_ee = obj.resolve_execution_environment()
|
resolved_ee = obj.resolve_execution_environment()
|
||||||
summary_fields['resolved_environment'] = {
|
if resolved_ee is not None:
|
||||||
field: getattr(resolved_ee, field, None)
|
summary_fields['resolved_environment'] = {
|
||||||
for field in SUMMARIZABLE_FK_FIELDS['execution_environment']
|
field: getattr(resolved_ee, field, None)
|
||||||
if getattr(resolved_ee, field, None) is not None
|
for field in SUMMARIZABLE_FK_FIELDS['execution_environment']
|
||||||
}
|
if getattr(resolved_ee, field, None) is not None
|
||||||
|
}
|
||||||
|
|
||||||
return summary_fields
|
return summary_fields
|
||||||
|
|
||||||
@@ -3425,6 +3426,7 @@ class WorkflowJobTemplateSerializer(JobTemplateMixin, LabelsListMixin, UnifiedJo
|
|||||||
'ask_limit_on_launch',
|
'ask_limit_on_launch',
|
||||||
'webhook_service',
|
'webhook_service',
|
||||||
'webhook_credential',
|
'webhook_credential',
|
||||||
|
'-execution_environment',
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_related(self, obj):
|
def get_related(self, obj):
|
||||||
@@ -3451,6 +3453,7 @@ class WorkflowJobTemplateSerializer(JobTemplateMixin, LabelsListMixin, UnifiedJo
|
|||||||
survey_spec=self.reverse('api:workflow_job_template_survey_spec', kwargs={'pk': obj.pk}),
|
survey_spec=self.reverse('api:workflow_job_template_survey_spec', kwargs={'pk': obj.pk}),
|
||||||
copy=self.reverse('api:workflow_job_template_copy', kwargs={'pk': obj.pk}),
|
copy=self.reverse('api:workflow_job_template_copy', kwargs={'pk': obj.pk}),
|
||||||
)
|
)
|
||||||
|
res.pop('execution_environment', None) # EEs aren't meaningful for workflows
|
||||||
if obj.organization:
|
if obj.organization:
|
||||||
res['organization'] = self.reverse('api:organization_detail', kwargs={'pk': obj.organization.pk})
|
res['organization'] = self.reverse('api:organization_detail', kwargs={'pk': obj.organization.pk})
|
||||||
if obj.webhook_credential_id:
|
if obj.webhook_credential_id:
|
||||||
@@ -3502,6 +3505,7 @@ class WorkflowJobSerializer(LabelsListMixin, UnifiedJobSerializer):
|
|||||||
'allow_simultaneous',
|
'allow_simultaneous',
|
||||||
'job_template',
|
'job_template',
|
||||||
'is_sliced_job',
|
'is_sliced_job',
|
||||||
|
'-execution_environment',
|
||||||
'-execution_node',
|
'-execution_node',
|
||||||
'-event_processing_finished',
|
'-event_processing_finished',
|
||||||
'-controller_node',
|
'-controller_node',
|
||||||
@@ -3515,6 +3519,7 @@ class WorkflowJobSerializer(LabelsListMixin, UnifiedJobSerializer):
|
|||||||
|
|
||||||
def get_related(self, obj):
|
def get_related(self, obj):
|
||||||
res = super(WorkflowJobSerializer, self).get_related(obj)
|
res = super(WorkflowJobSerializer, self).get_related(obj)
|
||||||
|
res.pop('execution_environment', None) # EEs aren't meaningful for workflows
|
||||||
if obj.workflow_job_template:
|
if obj.workflow_job_template:
|
||||||
res['workflow_job_template'] = self.reverse('api:workflow_job_template_detail', kwargs={'pk': obj.workflow_job_template.pk})
|
res['workflow_job_template'] = self.reverse('api:workflow_job_template_detail', kwargs={'pk': obj.workflow_job_template.pk})
|
||||||
res['notifications'] = self.reverse('api:workflow_job_notifications_list', kwargs={'pk': obj.pk})
|
res['notifications'] = self.reverse('api:workflow_job_notifications_list', kwargs={'pk': obj.pk})
|
||||||
@@ -3539,7 +3544,7 @@ class WorkflowJobSerializer(LabelsListMixin, UnifiedJobSerializer):
|
|||||||
|
|
||||||
class WorkflowJobListSerializer(WorkflowJobSerializer, UnifiedJobListSerializer):
|
class WorkflowJobListSerializer(WorkflowJobSerializer, UnifiedJobListSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
fields = ('*', '-execution_node', '-controller_node')
|
fields = ('*', '-execution_environment', '-execution_node', '-controller_node')
|
||||||
|
|
||||||
|
|
||||||
class WorkflowJobCancelSerializer(WorkflowJobSerializer):
|
class WorkflowJobCancelSerializer(WorkflowJobSerializer):
|
||||||
|
|||||||
@@ -471,13 +471,6 @@ class ExecutionEnvironmentMixin(models.Model):
|
|||||||
template = getattr(self, 'unified_job_template', None)
|
template = getattr(self, 'unified_job_template', None)
|
||||||
if template is not None and template.execution_environment is not None:
|
if template is not None and template.execution_environment is not None:
|
||||||
return template.execution_environment
|
return template.execution_environment
|
||||||
wf_node = getattr(self, 'unified_job_node', None)
|
|
||||||
while wf_node is not None:
|
|
||||||
wf_template = wf_node.workflow_job.workflow_job_template
|
|
||||||
# NOTE: sliced workflow_jobs have a null workflow_job_template
|
|
||||||
if wf_template and wf_template.execution_environment is not None:
|
|
||||||
return wf_template.execution_environment
|
|
||||||
wf_node = getattr(wf_node.workflow_job, 'unified_job_node', None)
|
|
||||||
if getattr(self, 'project_id', None) and self.project.default_environment is not None:
|
if getattr(self, 'project_id', None) and self.project.default_environment is not None:
|
||||||
return self.project.default_environment
|
return self.project.default_environment
|
||||||
if getattr(self, 'organization_id', None) and self.organization.default_environment is not None:
|
if getattr(self, 'organization_id', None) and self.organization.default_environment is not None:
|
||||||
|
|||||||
@@ -595,6 +595,9 @@ class WorkflowJobTemplate(UnifiedJobTemplate, WorkflowJobOptions, SurveyJobTempl
|
|||||||
def _get_related_jobs(self):
|
def _get_related_jobs(self):
|
||||||
return WorkflowJob.objects.filter(workflow_job_template=self)
|
return WorkflowJob.objects.filter(workflow_job_template=self)
|
||||||
|
|
||||||
|
def resolve_execution_environment(self):
|
||||||
|
return None # EEs are not meaningful for workflows
|
||||||
|
|
||||||
|
|
||||||
class WorkflowJob(UnifiedJob, WorkflowJobOptions, SurveyJobMixin, JobNotificationMixin, WebhookMixin):
|
class WorkflowJob(UnifiedJob, WorkflowJobOptions, SurveyJobMixin, JobNotificationMixin, WebhookMixin):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
Reference in New Issue
Block a user