@@ -191,9 +191,15 @@ def http_post(self, data):
191191 """
192192 logger .info ("Sending POST request to %s..." % self .endpoint )
193193 logger .debug ("Payload: %s" % data )
194- r = requests .post (self .endpoint , data = data , headers = {'Content-Type' : 'application/json; charset=utf-8' })
195- getattr (logger , "info" if self .is_good_status_code (r .status_code ) else "warning" )("POST request finished with status code: " + str (r .status_code ))
196- return r
194+ post_succeeded = False
195+ try :
196+ r = requests .post (self .endpoint , data = data , headers = {'Content-Type' : 'application/json; charset=utf-8' })
197+ post_succeeded = Emitter .is_good_status_code (r .status_code )
198+ getattr (logger , "info" if post_succeeded else "warning" )("POST request finished with status code: " + str (r .status_code ))
199+ except requests .RequestException as e :
200+ logger .warning (e )
201+
202+ return post_succeeded
197203
198204 @contract
199205 def http_get (self , payload ):
@@ -203,9 +209,15 @@ def http_get(self, payload):
203209 """
204210 logger .info ("Sending GET request to %s..." % self .endpoint )
205211 logger .debug ("Payload: %s" % payload )
206- r = requests .get (self .endpoint , params = payload )
207- getattr (logger , "info" if self .is_good_status_code (r .status_code ) else "warning" )("GET request finished with status code: " + str (r .status_code ))
208- return r
212+ get_succeeded = False
213+ try :
214+ r = requests .get (self .endpoint , params = payload )
215+ get_succeeded = Emitter .is_good_status_code (r .status_code )
216+ getattr (logger , "info" if get_succeeded else "warning" )("GET request finished with status code: " + str (r .status_code ))
217+ except requests .RequestException as e :
218+ logger .warning (e )
219+
220+ return get_succeeded
209221
210222 def sync_flush (self ):
211223 """
@@ -233,41 +245,33 @@ def send_events(self, evts):
233245 :type evts: list(dict(string:*))
234246 """
235247 if len (evts ) > 0 :
236- logger .info ("Attempting to send %s requests" % len (evts ))
248+ logger .info ("Attempting to send %s events" % len (evts ))
249+
237250 Emitter .attach_sent_timestamp (evts )
251+ success_events = []
252+ failure_events = []
253+
238254 if self .method == 'post' :
239255 data = SelfDescribingJson (PAYLOAD_DATA_SCHEMA , evts ).to_string ()
240- post_succeeded = False
241- try :
242- status_code = self .http_post (data ).status_code
243- post_succeeded = self .is_good_status_code (status_code )
244- except requests .RequestException as e :
245- logger .warning (e )
246- if post_succeeded :
247- if self .on_success is not None :
248- self .on_success (len (evts ))
249- elif self .on_failure is not None :
250- self .on_failure (0 , evts )
256+ request_succeeded = self .http_post (data )
257+ if request_succeeded :
258+ success_events += evts
259+ else :
260+ failure_events += evts
251261
252262 elif self .method == 'get' :
253- success_count = 0
254- unsent_requests = []
255263 for evt in evts :
256- get_succeeded = False
257- try :
258- status_code = self .http_get (evt ).status_code
259- get_succeeded = self .is_good_status_code (status_code )
260- except requests .RequestException as e :
261- logger .warning (e )
262- if get_succeeded :
263- success_count += 1
264+ request_succeeded = self .http_get (evt )
265+ if request_succeeded :
266+ success_events += [evt ]
264267 else :
265- unsent_requests .append (evt )
266- if len (unsent_requests ) == 0 :
267- if self .on_success is not None :
268- self .on_success (success_count )
269- elif self .on_failure is not None :
270- self .on_failure (success_count , unsent_requests )
268+ failure_events += [evt ]
269+
270+ if self .on_success is not None and len (success_events ) > 0 :
271+ self .on_success (success_events )
272+ if self .on_failure is not None and len (failure_events ) > 0 :
273+ self .on_failure (len (success_events ), failure_events )
274+
271275 else :
272276 logger .info ("Skipping flush since buffer is empty" )
273277
0 commit comments