mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 07:17:40 -02:30
generalize stdout event processing to emit events for *all* job types
* introduces three new models: `ProjectUpdateEvent`, `InventoryUpdateEvent`, and `SystemJobEvent` * simplifies the stdout callback management in `tasks.py` - now _all_ job run types capture and emit events to the callback receiver * supports stdout reconstruction from events for stdout downloads for _all_ job types * configures `ProjectUpdate` runs to configure the awx display callback (so we can capture real playbook events for `project_update.yml`) * ProjectUpdate, InventoryUpdate, and SystemJob runs no longer write text blobs to the deprecated `main_unifiedjob.result_stdout_text` column see: https://github.com/ansible/awx/issues/200
This commit is contained in:
@@ -123,6 +123,8 @@ class EventContext(object):
|
||||
event_data['job_id'] = int(os.getenv('JOB_ID', '0'))
|
||||
if os.getenv('AD_HOC_COMMAND_ID', ''):
|
||||
event_data['ad_hoc_command_id'] = int(os.getenv('AD_HOC_COMMAND_ID', '0'))
|
||||
if os.getenv('PROJECT_UPDATE_ID', ''):
|
||||
event_data['project_update_id'] = int(os.getenv('PROJECT_UPDATE_ID', '0'))
|
||||
event_data.setdefault('pid', os.getpid())
|
||||
event_data.setdefault('uuid', str(uuid.uuid4()))
|
||||
event_data.setdefault('created', datetime.datetime.utcnow().isoformat())
|
||||
@@ -145,7 +147,7 @@ class EventContext(object):
|
||||
event_data['res'] = {}
|
||||
event_dict = dict(event=event, event_data=event_data)
|
||||
for key in event_data.keys():
|
||||
if key in ('job_id', 'ad_hoc_command_id', 'uuid', 'parent_uuid', 'created',):
|
||||
if key in ('job_id', 'ad_hoc_command_id', 'project_update_id', 'uuid', 'parent_uuid', 'created',):
|
||||
event_dict[key] = event_data.pop(key)
|
||||
elif key in ('verbosity', 'pid'):
|
||||
event_dict[key] = event_data[key]
|
||||
|
||||
Reference in New Issue
Block a user