@@ -164,59 +164,44 @@ def listener(callback=None, bot_identity=None):
164164 )
165165 return
166166
167- headers = token .requests ()
168- # WARNING: Sensitive security information will be logged, uncomment only when necessary.
169- # LOG.debug("Authentication headers {}".format(headers))
170-
171- headers .update ({'Accept' : 'text/event-stream' })
172- with requests .Session () as session :
173- response = session .get (
174- "" .join ([self .cfg .stream_url , "/stream" ]),
175- headers = headers ,
176- stream = True ,
177- verify = self .cfg .verify_cert
178- )
179- if response .raise_for_status ():
180- raise HTTPError ("HTTP Error {} ({})" .format (
181- response .reason ,
182- response .status_code
183- ))
184- try :
185- client = sseclient .SSEClient (response )
186- for event in client .events ():
187- data = json .loads (event .data )
188- if event .event in ["st2.announcement__errbot" ]:
189- LOG .debug (
190- "*** Errbot announcement event detected! ***\n {}\n " .format (event )
191- )
192- p = data ["payload" ]
193- callback (
194- p .get ('whisper' ),
195- p .get ('message' ),
196- p .get ('user' ),
197- p .get ('channel' ),
198- p .get ('extra' )
167+ stream_kwargs = {
168+ "headers" : token .requests (),
169+ "verify" : self .cfg .verify_cert
170+ }
171+
172+ stream_url = "" .join ([self .cfg .stream_url , "/stream" ])
173+ try :
174+ stream = sseclient .SSEClient (stream_url , ** stream_kwargs )
175+ for event in stream :
176+ if event .event in ["st2.announcement__errbot" ]:
177+ LOG .debug (
178+ "*** Errbot announcement event detected! ***\n {}\n {}\n " .format (
179+ event .dump (),
180+ stream
199181 )
200- except Exception as e :
201- raise e
202- finally :
203- if client :
204- client .close ()
182+ )
183+ data = json .loads (event .data )
184+ p = data ["payload" ]
185+ callback (
186+ p .get ('whisper' ),
187+ p .get ('message' ),
188+ p .get ('user' ),
189+ p .get ('channel' ),
190+ p .get ('extra' )
191+ )
192+ except Exception as e :
193+ raise e
205194
206195 StackStormAPI .stream_backoff = 10
207196 while True :
208197 try :
198+ self .refresh_bot_credentials ()
209199 listener (callback , bot_identity )
210200 except Exception as err :
211201 LOG .critical (
212202 "St2 stream listener - An error occurred: {} {}. "
213203 "Backing off {} seconds." .format (type (err ), err , StackStormAPI .stream_backoff )
214204 )
215205 traceback .print_exc ()
216- try :
217- self .refresh_bot_credentials ()
218- except Exception as e :
219- LOG .critical ("Error refreshing credentials {}" .format (e ))
220- traceback .print_exc ()
221206
222207 time .sleep (StackStormAPI .stream_backoff )
0 commit comments