Skip to content

Commit d29585c

Browse files
Dmitriy DiachkovDmitriy Diachkov
authored andcommitted
Issue #365: Add error handling in Bamboo _get_generator method
1 parent ad22cb6 commit d29585c

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

atlassian/bamboo.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# coding=utf-8
22
import logging
3+
from requests.exceptions import HTTPError
34
from .rest_client import AtlassianRestAPI
45

56
log = logging.getLogger(__name__)
@@ -33,16 +34,26 @@ def _get_generator(self, path, elements_key='results', element_key='result', dat
3334
start_index = 0
3435
params['start-index'] = start_index
3536
response = self.get(path, data, flags, params, headers)
36-
results = response[elements_key]
37-
size = 0
38-
39-
# Check if we still can get results
40-
if size > max_results or results['size'] == 0:
41-
return
42-
for r in results[element_key]:
43-
size += 1
44-
yield r
45-
start_index += results['max-result']
37+
if self.advanced_mode:
38+
try:
39+
response.raise_for_status()
40+
response = response.json()
41+
except HTTPError as e:
42+
logging.error("Broken response: {}".format(e))
43+
yield e
44+
try:
45+
results = response[elements_key]
46+
size = 0
47+
# Check if we still can get results
48+
if size > max_results or results['size'] == 0:
49+
return
50+
for r in results[element_key]:
51+
size += 1
52+
yield r
53+
start_index += results['max-result']
54+
except TypeError as e:
55+
yield response
56+
4657

4758
def base_list_call(self, resource, expand, favourite, clover_enabled, max_results, label=None, start_index=0, **kwargs):
4859
flags = []

0 commit comments

Comments
 (0)