mirror of
https://github.com/ansible/awx.git
synced 2026-03-15 16:07:30 -02:30
Support populating extra vars with post data when launching and
relaunching jobs
This commit is contained in:
@@ -444,6 +444,11 @@ class Job(UnifiedJob, JobOptions):
|
|||||||
dependencies.append(source.create_inventory_update(launch_type='dependency'))
|
dependencies.append(source.create_inventory_update(launch_type='dependency'))
|
||||||
return dependencies
|
return dependencies
|
||||||
|
|
||||||
|
def handle_extra_data(self, extra_data):
|
||||||
|
evars = json.loads(self.extra_vars)
|
||||||
|
evars.update(extra_data)
|
||||||
|
self.update_fields(extra_vars=json.dumps(evars))
|
||||||
|
|
||||||
def copy(self):
|
def copy(self):
|
||||||
presets = {}
|
presets = {}
|
||||||
for kw in self.job_template._get_unified_job_field_names():
|
for kw in self.job_template._get_unified_job_field_names():
|
||||||
|
|||||||
@@ -567,6 +567,9 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
def get_passwords_needed_to_start(self):
|
def get_passwords_needed_to_start(self):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
def handle_extra_data(self, extra_data):
|
||||||
|
return
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def can_start(self):
|
def can_start(self):
|
||||||
return bool(self.status in ('new', 'waiting'))
|
return bool(self.status in ('new', 'waiting'))
|
||||||
@@ -631,6 +634,8 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
opts = dict([(field, kwargs.get(field, '')) for field in needed])
|
opts = dict([(field, kwargs.get(field, '')) for field in needed])
|
||||||
if not all(opts.values()):
|
if not all(opts.values()):
|
||||||
return False
|
return False
|
||||||
|
extra_data = dict([(field, kwargs[field]) for field in kwargs if field not in needed])
|
||||||
|
self.handle_extra_data(extra_data)
|
||||||
self.update_fields(start_args=json.dumps(kwargs), status='pending')
|
self.update_fields(start_args=json.dumps(kwargs), status='pending')
|
||||||
self.socketio_emit_status("pending")
|
self.socketio_emit_status("pending")
|
||||||
task_type = get_type_for_model(self)
|
task_type = get_type_for_model(self)
|
||||||
|
|||||||
Reference in New Issue
Block a user