@@ -134,40 +134,45 @@ def get(self):
134134 return ctx
135135
136136 def get_begin_dict (self ):
137+ omit_event_data = os .getenv ("RUNNER_OMIT_EVENTS" , "False" ).lower () == "true"
138+ include_only_failed_event_data = os .getenv ("RUNNER_ONLY_FAILED_EVENTS" , "False" ).lower () == "true"
137139 event_data = self .get ()
138- # TODO: Need to rework these values
140+ event = event_data .pop ('event' , None )
141+ if not event :
142+ event = 'verbose'
143+ for key in ('debug' , 'verbose' , 'deprecated' , 'warning' , 'system_warning' , 'error' ):
144+ if event_data .get (key , False ):
145+ event = key
146+ break
147+ event_dict = dict (event = event )
148+ should_process_event_data = (include_only_failed_event_data and event in ('runner_on_failed' , 'runner_on_async_failed' , 'runner_on_item_failed' )) \
149+ or not include_only_failed_event_data
139150 if os .getenv ('JOB_ID' , '' ):
140- event_data ['job_id' ] = int (os .getenv ('JOB_ID' , '0' ))
151+ event_dict ['job_id' ] = int (os .getenv ('JOB_ID' , '0' ))
141152 if os .getenv ('AD_HOC_COMMAND_ID' , '' ):
142- event_data ['ad_hoc_command_id' ] = int (os .getenv ('AD_HOC_COMMAND_ID' , '0' ))
153+ event_dict ['ad_hoc_command_id' ] = int (os .getenv ('AD_HOC_COMMAND_ID' , '0' ))
143154 if os .getenv ('PROJECT_UPDATE_ID' , '' ):
144- event_data ['project_update_id' ] = int (os .getenv ('PROJECT_UPDATE_ID' , '0' ))
145- event_data .setdefault ('pid' , os .getpid ())
146- event_data .setdefault ('uuid' , str (uuid .uuid4 ()))
147- event_data .setdefault ('created' , datetime .datetime .utcnow ().isoformat ())
155+ event_dict ['project_update_id' ] = int (os .getenv ('PROJECT_UPDATE_ID' , '0' ))
156+ event_dict [ 'pid' ] = event_data .get ('pid' , os .getpid ())
157+ event_dict [ 'uuid' ] = event_data .get ('uuid' , str (uuid .uuid4 ()))
158+ event_dict [ 'created' ] = event_data .get ('created' , datetime .datetime .utcnow ().isoformat ())
148159 if not event_data .get ('parent_uuid' , None ):
149160 for key in ('task_uuid' , 'play_uuid' , 'playbook_uuid' ):
150161 parent_uuid = event_data .get (key , None )
151162 if parent_uuid and parent_uuid != event_data .get ('uuid' , None ):
152- event_data ['parent_uuid' ] = parent_uuid
153- break
154-
155- event = event_data .pop ('event' , None )
156- if not event :
157- event = 'verbose'
158- for key in ('debug' , 'verbose' , 'deprecated' , 'warning' , 'system_warning' , 'error' ):
159- if event_data .get (key , False ):
160- event = key
163+ event_dict ['parent_uuid' ] = parent_uuid
161164 break
162- max_res = int (os .getenv ("MAX_EVENT_RES" , 700000 ))
163- if event not in ('playbook_on_stats' ,) and "res" in event_data and len (str (event_data ['res' ])) > max_res :
164- event_data ['res' ] = {}
165- event_dict = dict (event = event , event_data = event_data )
166- for key in list (event_data .keys ()):
167- if key in ('job_id' , 'ad_hoc_command_id' , 'project_update_id' , 'uuid' , 'parent_uuid' , 'created' ,):
168- event_dict [key ] = event_data .pop (key )
169- elif key in ('verbosity' , 'pid' ):
170- event_dict [key ] = event_data [key ]
165+ else :
166+ event_dict ['parent_uuid' ] = event_data .get ('parent_uuid' , None )
167+ if "verbosity" in event_data .keys ():
168+ event_dict ["verbosity" ] = event_data .pop ("verbosity" )
169+ if not omit_event_data and should_process_event_data :
170+ max_res = int (os .getenv ("MAX_EVENT_RES" , 700000 ))
171+ if event not in ('playbook_on_stats' ,) and "res" in event_data and len (str (event_data ['res' ])) > max_res :
172+ event_data ['res' ] = {}
173+ else :
174+ event_data = dict ()
175+ event_dict ['event_data' ] = event_data
171176 return event_dict
172177
173178 def get_end_dict (self ):
0 commit comments