@@ -134,40 +134,45 @@ def get(self):
134
134
return ctx
135
135
136
136
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"
137
139
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
139
150
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' ))
141
152
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' ))
143
154
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 ())
148
159
if not event_data .get ('parent_uuid' , None ):
149
160
for key in ('task_uuid' , 'play_uuid' , 'playbook_uuid' ):
150
161
parent_uuid = event_data .get (key , None )
151
162
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
161
164
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
171
176
return event_dict
172
177
173
178
def get_end_dict (self ):
0 commit comments