@@ -75,9 +75,9 @@ def command(sock, dbname, spec, slave_ok, is_mongos,
7575 monitoring .publish_command_start (orig , dbname , request_id , address )
7676 start = datetime .datetime .now ()
7777
78- sock .sendall (msg )
79- response = receive_message (sock , 1 , request_id )
8078 try :
79+ sock .sendall (msg )
80+ response = receive_message (sock , 1 , request_id )
8181 unpacked = helpers ._unpack_response (
8282 response , codec_options = codec_options )
8383
@@ -86,11 +86,15 @@ def command(sock, dbname, spec, slave_ok, is_mongos,
8686 msg = "command %s on namespace %s failed: %%s" % (
8787 repr (spec ).replace ("%" , "%%" ), ns )
8888 helpers ._check_command_response (response_doc , msg , allowable_errors )
89- except ( NotMasterError , OperationFailure ) as exc :
89+ except Exception as exc :
9090 if publish :
9191 duration = (datetime .datetime .now () - start ) + encoding_duration
92+ if isinstance (exc , (NotMasterError , OperationFailure )):
93+ failure = exc .details
94+ else :
95+ failure = message ._convert_exception (exc )
9296 monitoring .publish_command_failure (
93- duration , exc . details , name , request_id , address )
97+ duration , failure , name , request_id , address )
9498 raise
9599 if publish :
96100 duration = (datetime .datetime .now () - start ) + encoding_duration
0 commit comments