@@ -700,9 +700,12 @@ def _handle_sasl_handshake_response(self, future, response):
700700 'Kafka broker does not support %s sasl mechanism. Enabled mechanisms are: %s'
701701 % (self .config ['sasl_mechanism' ], response .enabled_mechanisms )))
702702 else :
703- self ._sasl_authenticate (future )
703+ try :
704+ ret = self ._sasl_authenticate ()
705+ future .success (ret )
706+ except Exception as exc :
707+ future .failure (exc )
704708
705- assert future .is_done , 'SASL future not complete after mechanism processing!'
706709 if future .failed ():
707710 self .close (error = future .exception )
708711 else :
@@ -814,24 +817,24 @@ def _recv_sasl_authenticate(self):
814817 log .debug ('%s: Received %d raw sasl auth bytes from server' , self , nbytes )
815818 return data [4 :]
816819
817- def _sasl_authenticate (self , future ):
820+ def _sasl_authenticate (self ):
818821 while not self ._sasl_mechanism .is_done ():
819822 send_token = self ._sasl_mechanism .auth_bytes ()
820823 self ._send_sasl_authenticate (send_token )
821824 if not self ._can_send_recv ():
822- return future . failure ( Errors .KafkaConnectionError ("%s: Connection failure during Sasl Authenticate" % self ) )
825+ raise Errors .KafkaConnectionError ("%s: Connection failure during Sasl Authenticate" % self )
823826
824827 recv_token = self ._recv_sasl_authenticate ()
825828 if recv_token is None :
826- return future . failure ( Errors .KafkaConnectionError ("%s: Connection failure during Sasl Authenticate" % self ) )
829+ raise Errors .KafkaConnectionError ("%s: Connection failure during Sasl Authenticate" % self )
827830 else :
828831 self ._sasl_mechanism .receive (recv_token )
829832
830833 if self ._sasl_mechanism .is_authenticated ():
831834 log .info ('%s: %s' , self , self ._sasl_mechanism .auth_details ())
832- return future . success ( True )
835+ return True
833836 else :
834- return future . failure ( Errors .SaslAuthenticationFailedError ('Failed to authenticate via SASL %s' % self .config ['sasl_mechanism' ]) )
837+ raise Errors .SaslAuthenticationFailedError ('Failed to authenticate via SASL %s' % self .config ['sasl_mechanism' ])
835838
836839 def blacked_out (self ):
837840 """
0 commit comments