summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awx/api/views/__init__.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py
index 4d02794535..bb906b73bb 100644
--- a/awx/api/views/__init__.py
+++ b/awx/api/views/__init__.py
@@ -3154,9 +3154,10 @@ class WorkflowJobRelaunch(WorkflowsEnforcementMixin, GenericAPIView):
def post(self, request, *args, **kwargs):
obj = self.get_object()
if obj.is_sliced_job:
- if not obj.job_template_id:
+ jt = obj.job_template
+ if not jt:
raise ParseError(_('Cannot relaunch slice workflow job orphaned from job template.'))
- elif obj.job_template.job_slice_count != obj.workflow_nodes.count():
+ elif not jt.inventory or min(jt.inventory.hosts.count(), jt.job_slice_count) != obj.workflow_nodes.count():
raise ParseError(_('Cannot relaunch sliced workflow job after slice count has changed.'))
new_workflow_job = obj.create_relaunch_workflow_job()
new_workflow_job.signal_start()