@@ -429,7 +429,7 @@ def _heartbeat(self):
429429 logger .error ("Failed to heartbeat. code: %s, url: %s" ,
430430 ret .get (u'code' ), url )
431431
432- def delete_session (self ):
432+ def delete_session (self , retry = False ):
433433 """
434434 Deletes the session
435435 """
@@ -452,19 +452,31 @@ def delete_session(self):
452452 headers [HTTP_HEADER_SERVICE_NAME ] = self ._connection .service_name
453453
454454 body = {}
455- try :
456- ret = self ._post_request (
457- url , headers , json .dumps (body ),
458- token = self .token , timeout = 5 , no_retry = True )
459- if not ret or ret .get (u'success' ):
460- return
461- err = ret .get (u'message' )
462- if err is not None and ret .get (u'data' ):
463- err += ret [u'data' ].get (u'errorMessage' , '' )
464- # no exception is raised
465- logger .debug ('error in deleting session. ignoring...: %s' , err )
466- except Exception as e :
467- logger .debug ('error in deleting session. ignoring...: %s' , e )
455+ retry_limit = 3 if retry else 1
456+ num_retries = 0
457+ should_retry = True
458+ while should_retry and (num_retries < retry_limit ):
459+ try :
460+ should_retry = False
461+ ret = self ._post_request (
462+ url , headers , json .dumps (body ),
463+ token = self .token , timeout = 5 , no_retry = True )
464+ if not ret :
465+ if retry :
466+ should_retry = True
467+ else :
468+ return
469+ elif ret .get (u'success' ):
470+ return
471+ err = ret .get (u'message' )
472+ if err is not None and ret .get (u'data' ):
473+ err += ret [u'data' ].get (u'errorMessage' , '' )
474+ # no exception is raised
475+ logger .debug ('error in deleting session. ignoring...: %s' , err )
476+ except Exception as e :
477+ logger .debug ('error in deleting session. ignoring...: %s' , e )
478+ finally :
479+ num_retries += 1
468480
469481 def _get_request (self , url , headers , token = None ,
470482 timeout = None ,
0 commit comments