@@ -232,13 +232,13 @@ def start_launch(self,
232
232
"rerunOf" : rerunOf
233
233
}
234
234
url = uri_join (self .base_url_v2 , "launch" )
235
- r = self . session . request (
236
- method = 'POST' ,
237
- url = url ,
238
- json = data ,
239
- verify = self . verify_ssl ,
240
- timeout = self . http_timeout
241
- )
235
+ try :
236
+ r = self . session . post ( url , json = data , verify = self . verify_ssl ,
237
+ timeout = self . http_timeout )
238
+ except ( ValueError , KeyError , IOError ) as exc :
239
+ logger . warning ( "Report Portal Start Launch request failed" ,
240
+ exc_info = exc , stack_info = True )
241
+ return
242
242
self .launch_id = _get_id (r )
243
243
logger .debug ("start_launch - ID: %s" , self .launch_id )
244
244
return self .launch_id
@@ -261,12 +261,15 @@ def finish_launch(self, end_time, status=None, attributes=None, **kwargs):
261
261
"attributes" : verify_value_length (attributes )
262
262
}
263
263
url = uri_join (self .base_url_v2 , "launch" , self .launch_id , "finish" )
264
- r = self .session .request (
265
- method = 'PUT' ,
266
- url = url ,
267
- json = data ,
268
- verify = self .verify_ssl
269
- )
264
+ try :
265
+ r = self .session .put (url , json = data , verify = self .verify_ssl ,
266
+ timeout = self .http_timeout )
267
+ except (ValueError , KeyError , IOError ) as exc :
268
+ logger .warning (
269
+ "Report Portal Finish Launch request failed" ,
270
+ exc_info = exc , stack_info = True
271
+ )
272
+ return
270
273
logger .debug ("finish_launch - ID: %s" , self .launch_id )
271
274
return _get_msg (r )
272
275
@@ -285,11 +288,15 @@ def get_launch_info(self, max_retries=5):
285
288
286
289
for _ in range (max_retries ):
287
290
logger .debug ("get_launch_info - ID: %s" , self .launch_id )
288
- resp = self .session .request (
289
- method = 'GET' ,
290
- url = url ,
291
- verify = self .verify_ssl ,
292
- timeout = self .http_timeout )
291
+ try :
292
+ resp = self .session .get (url , verify = self .verify_ssl ,
293
+ timeout = self .http_timeout )
294
+ except (ValueError , KeyError , IOError ) as exc :
295
+ logger .warning (
296
+ "Report Portal Launch Info request failed" ,
297
+ exc_info = exc , stack_info = True
298
+ )
299
+ continue
293
300
294
301
if resp .status_code == 200 :
295
302
launch_info = _get_json (resp )
@@ -374,13 +381,15 @@ def start_test_item(self,
374
381
url = uri_join (self .base_url_v2 , "item" , parent_item_id )
375
382
else :
376
383
url = uri_join (self .base_url_v2 , "item" )
377
- r = self .session .request (
378
- method = 'POST' ,
379
- url = url ,
380
- json = data ,
381
- verify = self .verify_ssl ,
382
- timeout = self .http_timeout
383
- )
384
+ try :
385
+ r = self .session .post (url , json = data , verify = self .verify_ssl ,
386
+ timeout = self .http_timeout )
387
+ except (ValueError , KeyError , IOError ) as exc :
388
+ logger .warning (
389
+ "Report Portal Start Item request failed" ,
390
+ exc_info = exc , stack_info = True
391
+ )
392
+ return
384
393
385
394
item_id = _get_id (r )
386
395
logger .debug ("start_test_item - ID: %s" , item_id )
@@ -400,13 +409,15 @@ def update_test_item(self, item_uuid, attributes=None, description=None):
400
409
}
401
410
item_id = self .get_item_id_by_uuid (item_uuid )
402
411
url = uri_join (self .base_url_v1 , "item" , item_id , "update" )
403
- r = self .session .request (
404
- method = 'PUT' ,
405
- url = url ,
406
- json = data ,
407
- verify = self .verify_ssl ,
408
- timeout = self .http_timeout
409
- )
412
+ try :
413
+ r = self .session .put (url , json = data , verify = self .verify_ssl ,
414
+ timeout = self .http_timeout )
415
+ except (ValueError , KeyError , IOError ) as exc :
416
+ logger .warning (
417
+ "Report Portal Update Item request failed" ,
418
+ exc_info = exc , stack_info = True
419
+ )
420
+ return
410
421
logger .debug ("update_test_item - Item: %s" , item_id )
411
422
return _get_msg (r )
412
423
@@ -443,12 +454,14 @@ def finish_test_item(self,
443
454
"attributes" : verify_value_length (attributes )
444
455
}
445
456
url = uri_join (self .base_url_v2 , "item" , item_id )
446
- r = self .session .request (
447
- method = 'PUT' ,
448
- url = url ,
449
- json = data ,
450
- verify = self .verify_ssl
451
- )
457
+ try :
458
+ r = self .session .put (url , json = data , verify = self .verify_ssl )
459
+ except (ValueError , KeyError , IOError ) as exc :
460
+ logger .warning (
461
+ "Report Portal Finish Item request failed" ,
462
+ exc_info = exc , stack_info = True
463
+ )
464
+ return
452
465
logger .debug ("finish_test_item - ID: %s" , item_id )
453
466
return _get_msg (r )
454
467
@@ -459,14 +472,16 @@ def get_item_id_by_uuid(self, uuid):
459
472
:return str: Test item id
460
473
"""
461
474
url = uri_join (self .base_url_v1 , "item" , "uuid" , uuid )
462
- return _get_json (
463
- self .session .request (
464
- method = 'GET' ,
465
- url = url ,
466
- verify = self .verify_ssl ,
467
- timeout = self .http_timeout
475
+ try :
476
+ r = self .session .get (url , verify = self .verify_ssl ,
477
+ timeout = self .http_timeout )
478
+ except (ValueError , KeyError , IOError ) as exc :
479
+ logger .warning (
480
+ "Report Portal Item Details request failed" ,
481
+ exc_info = exc , stack_info = True
468
482
)
469
- )["id" ]
483
+ return
484
+ return _get_json (r )["id" ]
470
485
471
486
def get_project_settings (self ):
472
487
"""
@@ -475,13 +490,15 @@ def get_project_settings(self):
475
490
:return: json body
476
491
"""
477
492
url = uri_join (self .base_url_v1 , "settings" )
478
- r = self .session .request (
479
- method = 'GET' ,
480
- url = url ,
481
- json = {},
482
- verify = self .verify_ssl ,
483
- timeout = self .http_timeout
484
- )
493
+ try :
494
+ r = self .session .get (url , json = {}, verify = self .verify_ssl ,
495
+ timeout = self .http_timeout )
496
+ except (ValueError , KeyError , IOError ) as exc :
497
+ logger .warning (
498
+ "Report Portal Project Settings request failed" ,
499
+ exc_info = exc , stack_info = True
500
+ )
501
+ return
485
502
logger .debug ("settings" )
486
503
return _get_json (r )
487
504
@@ -555,18 +572,19 @@ def _log_batch(self, log_data, force=False):
555
572
)
556
573
)]
557
574
files .extend (attachments )
558
- for i in range (POST_LOGBATCH_RETRY_COUNT ):
575
+ exceptions = []
576
+ for _ in range (POST_LOGBATCH_RETRY_COUNT ):
559
577
try :
560
- r = self .session .request (
561
- method = 'POST' ,
562
- url = url ,
563
- files = files ,
564
- verify = self .verify_ssl ,
565
- timeout = self .http_timeout
566
- )
578
+ r = self .session .post (url , files = files , verify = self .verify_ssl ,
579
+ timeout = self .http_timeout )
567
580
logger .debug ("log_batch response: %s" , r .text )
568
581
self ._batch_logs = []
569
582
return _get_data (r )
570
- except KeyError :
571
- if i + 1 == POST_LOGBATCH_RETRY_COUNT :
572
- raise
583
+ except (ValueError , KeyError , IOError ) as exc :
584
+ exceptions .append (exc )
585
+
586
+ logger .warning (
587
+ "Report Portal Batch Log request failed after %d attempts" ,
588
+ POST_LOGBATCH_RETRY_COUNT ,
589
+ exc_info = exceptions [- 1 ], stack_info = True
590
+ )
0 commit comments