From 054d6f6a1cadc11ab357a2f03bb19be5844e18e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 23 Oct 2018 14:11:58 +0200 Subject: [PATCH] wcs: don't crash manager getting list of options when down (#25423) --- combo/apps/wcs/utils.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/combo/apps/wcs/utils.py b/combo/apps/wcs/utils.py index c8ee4941..d38b054a 100644 --- a/combo/apps/wcs/utils.py +++ b/combo/apps/wcs/utils.py @@ -27,8 +27,12 @@ def get_wcs_services(): return settings.KNOWN_SERVICES.get('wcs') def get_wcs_json(wcs_site, path): - return requests.get(path, remote_service=wcs_site, without_user=True, - headers={'accept': 'application/json'}).json() + response = requests.get(path, remote_service=wcs_site, without_user=True, + headers={'accept': 'application/json'}) + if response.status_code != 200: + # the exact error will have been logged during request. + return {} + return response.json() def get_wcs_options(url, include_category_slug=False): references = [] @@ -39,6 +43,8 @@ def get_wcs_options(url, include_category_slug=False): if response_json.get('err') == 1: continue response_json = response_json.get('data') + if not response_json: + continue for element in response_json: slug = element.get('slug') title = element.get('title') -- 2.19.1