@@ -146,7 +146,8 @@ func (s *defaultServiceClient) DoJSONRequest(ctx context.Context, method, path s
146
146
func doJSONRequest (ctx context.Context , srvs []sdk.Service , method , path string , in interface {}, out interface {}, mods ... cdsclient.RequestModifier ) (http.Header , int , error ) {
147
147
var lastErr = sdk .WithStack (errors .New ("unable to call service: service not found" ))
148
148
var lastCode int
149
- for attempt := 0 ; attempt < 5 ; attempt ++ {
149
+ var attempts int64
150
+ for attempts = 0 ; attempts < 5 ; attempts ++ {
150
151
for i := range srvs {
151
152
srv := & srvs [i ]
152
153
headers , code , err := _doJSONRequest (ctx , srv , method , path , in , out , mods ... )
@@ -162,7 +163,7 @@ func doJSONRequest(ctx context.Context, srvs []sdk.Service, method, path string,
162
163
}
163
164
}
164
165
165
- log .Error (ctx , "unable to call service: maximum attempt exceed : %+v" , lastErr )
166
+ log .Error (ctx , "unable to call service: maximum attempt exceed: %+v lastCode:%d attempts:%d " , lastErr , lastCode , attempts )
166
167
return nil , lastCode , sdk .WithStack (lastErr )
167
168
}
168
169
@@ -305,7 +306,10 @@ func doRequestFromURL(ctx context.Context, method string, callURL *url.URL, read
305
306
//Do the request
306
307
resp , err := HTTPClient .Do (req )
307
308
if err != nil {
308
- return nil , nil , 0 , sdk .WrapError (err , "request failed" )
309
+ if resp != nil && resp .StatusCode > 0 {
310
+ return nil , nil , resp .StatusCode , sdk .WrapError (err , "request failed with resp status code: %d" , resp .StatusCode )
311
+ }
312
+ return nil , nil , 500 , sdk .WrapError (err , "request failed - use code 500" )
309
313
}
310
314
defer resp .Body .Close ()
311
315
@@ -327,5 +331,5 @@ func doRequestFromURL(ctx context.Context, method string, callURL *url.URL, read
327
331
return nil , resp .Header , resp .StatusCode , cdserr
328
332
}
329
333
330
- return nil , resp .Header , resp .StatusCode , sdk .WithStack (fmt .Errorf ("request failed" ))
334
+ return nil , resp .Header , resp .StatusCode , sdk .WithStack (fmt .Errorf ("request failed with status code: %d" , resp . StatusCode ))
331
335
}
0 commit comments