mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 09:27:36 -02:30
Merge pull request #4821 from AlanCoding/workflow_schedule_nodes
Move node copy into create_unified_job, copy nodes on schedule
This commit is contained in:
@@ -2969,7 +2969,7 @@ class WorkflowJobTemplateLaunch(WorkflowsEnforcementMixin, RetrieveAPIView):
|
|||||||
|
|
||||||
prompted_fields, ignored_fields = obj._accept_or_ignore_job_kwargs(**request.data)
|
prompted_fields, ignored_fields = obj._accept_or_ignore_job_kwargs(**request.data)
|
||||||
|
|
||||||
new_job = obj.create_workflow_job(**prompted_fields)
|
new_job = obj.create_unified_job(**prompted_fields)
|
||||||
new_job.signal_start(**prompted_fields)
|
new_job.signal_start(**prompted_fields)
|
||||||
|
|
||||||
data = OrderedDict()
|
data = OrderedDict()
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
# Python
|
# Python
|
||||||
import datetime
|
import datetime
|
||||||
import hmac
|
import hmac
|
||||||
import json
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from urlparse import urljoin
|
from urlparse import urljoin
|
||||||
@@ -589,23 +588,6 @@ class Job(UnifiedJob, JobOptions, SurveyJobMixin, JobNotificationMixin):
|
|||||||
hosts=all_hosts))
|
hosts=all_hosts))
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def handle_extra_data(self, extra_data):
|
|
||||||
extra_vars = {}
|
|
||||||
if isinstance(extra_data, dict):
|
|
||||||
extra_vars = extra_data
|
|
||||||
elif extra_data is None:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
if extra_data == "":
|
|
||||||
return
|
|
||||||
try:
|
|
||||||
extra_vars = json.loads(extra_data)
|
|
||||||
except Exception as e:
|
|
||||||
logger.warn("Exception deserializing extra vars: " + str(e))
|
|
||||||
evars = self.extra_vars_dict
|
|
||||||
evars.update(extra_vars)
|
|
||||||
self.update_fields(extra_vars=json.dumps(evars))
|
|
||||||
|
|
||||||
def _resources_sufficient_for_launch(self):
|
def _resources_sufficient_for_launch(self):
|
||||||
if self.job_type == PERM_INVENTORY_SCAN:
|
if self.job_type == PERM_INVENTORY_SCAN:
|
||||||
return self.inventory_id is not None
|
return self.inventory_id is not None
|
||||||
@@ -1356,23 +1338,6 @@ class SystemJob(UnifiedJob, SystemJobOptions, JobNotificationMixin):
|
|||||||
def get_ui_url(self):
|
def get_ui_url(self):
|
||||||
return urljoin(settings.TOWER_URL_BASE, "/#/management_jobs/{}".format(self.pk))
|
return urljoin(settings.TOWER_URL_BASE, "/#/management_jobs/{}".format(self.pk))
|
||||||
|
|
||||||
def handle_extra_data(self, extra_data):
|
|
||||||
extra_vars = {}
|
|
||||||
if isinstance(extra_data, dict):
|
|
||||||
extra_vars = extra_data
|
|
||||||
elif extra_data is None:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
if extra_data == "":
|
|
||||||
return
|
|
||||||
try:
|
|
||||||
extra_vars = json.loads(extra_data)
|
|
||||||
except Exception as e:
|
|
||||||
logger.warn("Exception deserializing extra vars: " + str(e))
|
|
||||||
evars = self.extra_vars_dict
|
|
||||||
evars.update(extra_vars)
|
|
||||||
self.update_fields(extra_vars=json.dumps(evars))
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def task_impact(self):
|
def task_impact(self):
|
||||||
return 150
|
return 150
|
||||||
|
|||||||
@@ -819,7 +819,22 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
def handle_extra_data(self, extra_data):
|
def handle_extra_data(self, extra_data):
|
||||||
return
|
if hasattr(self, 'extra_vars'):
|
||||||
|
extra_vars = {}
|
||||||
|
if isinstance(extra_data, dict):
|
||||||
|
extra_vars = extra_data
|
||||||
|
elif extra_data is None:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
if extra_data == "":
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
extra_vars = json.loads(extra_data)
|
||||||
|
except Exception as e:
|
||||||
|
logger.warn("Exception deserializing extra vars: " + str(e))
|
||||||
|
evars = self.extra_vars_dict
|
||||||
|
evars.update(extra_vars)
|
||||||
|
self.update_fields(extra_vars=json.dumps(evars))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def can_start(self):
|
def can_start(self):
|
||||||
|
|||||||
@@ -392,8 +392,8 @@ class WorkflowJobTemplate(UnifiedJobTemplate, WorkflowJobOptions, SurveyJobTempl
|
|||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates),
|
||||||
any=list(any_notification_templates))
|
any=list(any_notification_templates))
|
||||||
|
|
||||||
def create_workflow_job(self, **kwargs):
|
def create_unified_job(self, **kwargs):
|
||||||
workflow_job = self.create_unified_job(**kwargs)
|
workflow_job = super(WorkflowJobTemplate, self).create_unified_job(**kwargs)
|
||||||
workflow_job.copy_nodes_from_original(original=self)
|
workflow_job.copy_nodes_from_original(original=self)
|
||||||
return workflow_job
|
return workflow_job
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user