Skip to content

Commit 85d711b

Browse files
committed
Merge pull request #436 from helgi/kubehttpexceptions
ref(scheduler): spin off response info in KubeException into KubeHTTPException
2 parents f232f7f + 80e6a9b commit 85d711b

2 files changed

Lines changed: 19 additions & 8 deletions

File tree

rootfs/api/models/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from api.models.container import Container
1919
from api.models.domain import Domain
2020

21-
from scheduler import KubeException
21+
from scheduler import KubeHTTPException, KubeException
2222

2323
logger = logging.getLogger(__name__)
2424

@@ -551,7 +551,7 @@ def list_pods(self, *args, **kwargs):
551551
data.sort(key=lambda x: x['started'], reverse=True)
552552

553553
return data
554-
except KubeException as e:
554+
except KubeHTTPException as e:
555555
pass
556556
except Exception as e:
557557
err = '(list pods): {}'.format(e)

rootfs/scheduler/__init__.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,14 +264,25 @@
264264

265265
class KubeException(Exception):
266266
def __init__(self, *args, **kwargs):
267-
self.response = kwargs.pop('response', object)
268267
Exception.__init__(self, *args, **kwargs)
269268

270269

271-
def error(resp, errmsg, *args):
270+
class KubeHTTPException(KubeException):
271+
def __init__(self, *args, **kwargs):
272+
self.response = kwargs.pop('response', object)
273+
KubeException.__init__(self, *args, **kwargs)
274+
275+
276+
def error(response, errmsg, *args):
272277
errmsg = errmsg.format(*args)
273-
errmsg = "failed to {}: {} {}\n{}".format(errmsg, resp.status_code, resp.reason, resp.json())
274-
raise KubeException(errmsg, response=resp)
278+
errmsg = "failed to {}: {} {}\n{}".format(
279+
errmsg,
280+
response.status_code,
281+
response.reason,
282+
response.json()
283+
)
284+
285+
raise KubeHTTPException(errmsg, response=response)
275286

276287

277288
def unhealthy(status_code):
@@ -1082,7 +1093,7 @@ def _delete_pod(self, name, namespace):
10821093
for _ in range(30):
10831094
try:
10841095
self._get_pod(name, namespace)
1085-
except KubeException as e:
1096+
except KubeHTTPException as e:
10861097
if e.response.status_code == 404:
10871098
break
10881099

@@ -1091,7 +1102,7 @@ def _delete_pod(self, name, namespace):
10911102
# Pod was not deleted within the grace period.
10921103
try:
10931104
self._get_pod(name, namespace)
1094-
except KubeException as e:
1105+
except KubeHTTPException as e:
10951106
if e.response.status_code != 404:
10961107
error(e.response, 'delete Pod "{}" in Namespace "{}"', name, namespace)
10971108

0 commit comments

Comments
 (0)