File tree Expand file tree Collapse file tree 3 files changed +27
-1
lines changed
Expand file tree Collapse file tree 3 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -341,6 +341,11 @@ def parse_invoke_connection_response(api_response: requests.Response):
341341
342342 if 'x-request-id' in api_response .headers :
343343 message += ' - request id: ' + api_response .headers ['x-request-id' ]
344+
345+ if 'error-from-client' in api_response .headers :
346+ error_from_client = api_response .headers ['error-from-client' ]
347+ details = [{ "error_from_client" : error_from_client }]
348+ raise SkyflowError (message , status_code , details = details )
344349
345350 raise SkyflowError (message , status_code )
346351
Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ def invoke(self, request: InvokeConnectionRequest):
2727
2828 invoke_connection_request .headers ['sky-metadata' ] = json .dumps (get_metrics ())
2929
30- log_info (SkyflowMessages .Info .INVOKE_CONNECTION_TRIGGERED , self .__vault_client .get_logger ())
30+ log_info (SkyflowMessages .Info .INVOKE_CONNECTION_TRIGGERED . value , self .__vault_client .get_logger ())
3131
3232 try :
3333 response = session .send (invoke_connection_request )
@@ -36,5 +36,6 @@ def invoke(self, request: InvokeConnectionRequest):
3636 return invoke_connection_response
3737
3838 except Exception as e :
39+ if isinstance (e , SkyflowError ): raise e
3940 raise SkyflowError (SkyflowMessages .Error .INVOKE_CONNECTION_FAILED .value ,
4041 SkyflowMessages .ErrorCodes .SERVER_ERROR .value )
Original file line number Diff line number Diff line change @@ -100,5 +100,25 @@ def test_invoke_request_error(self, mock_send):
100100 with self .assertRaises (SkyflowError ) as context :
101101 self .connection .invoke (request )
102102 self .assertEqual (context .exception .message , SkyflowMessages .Error .INVOKE_CONNECTION_FAILED .value )
103+ self .assertTrue (context .exception .details ['error_from_client' ])
103104
105+ @patch ('requests.Session.send' )
106+ def test_invoke_request_error_from_client (self , mock_send ):
107+ mock_response = Mock ()
108+ mock_response .status_code = FAILURE_STATUS_CODE
109+ mock_response .content = ERROR_RESPONSE_CONTENT
110+ mock_response .headers = {'error-from-client' : True }
111+ mock_send .return_value = mock_response
112+
113+ request = InvokeConnectionRequest (
114+ method = RequestMethod .POST ,
115+ body = VALID_BODY ,
116+ path_params = VALID_PATH_PARAMS ,
117+ headers = VALID_HEADERS ,
118+ query_params = VALID_QUERY_PARAMS
119+ )
104120
121+ with self .assertRaises (SkyflowError ) as context :
122+ self .connection .invoke (request )
123+ self .assertEqual (context .exception .message , SkyflowMessages .Error .INVOKE_CONNECTION_FAILED .value )
124+ self .assertTrue (context .exception .details ['error_from_client' ])
You can’t perform that action at this time.
0 commit comments