From 5eca777c75e2683db73df2b36c840830e588e556 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Tue, 5 Sep 2017 15:21:17 +0200 Subject: [PATCH] lister_transports: filter known http response codes --- swh/lister/core/lister_transports.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/swh/lister/core/lister_transports.py b/swh/lister/core/lister_transports.py index 87e4c3f..4126d38 100644 --- a/swh/lister/core/lister_transports.py +++ b/swh/lister/core/lister_transports.py @@ -29,6 +29,8 @@ class SWHListerHttpTransport(abc.ABC): 'To be implemented in the API-specific' ' class inheriting this.') + EXPECTED_STATUS_CODES = (200, 429, 403, 404) + def request_headers(self): """Returns dictionary of any request headers needed by the server. @@ -75,9 +77,13 @@ class SWHListerHttpTransport(abc.ABC): if auth: params['auth'] = (auth['username'], auth['password']) try: - return self.session.get(self.api_baseurl + path, **params) + response = self.session.get(self.api_baseurl + path, **params) except requests.exceptions.ConnectionError as e: raise FetchError(e) + else: + if response.status_code not in self.EXPECTED_STATUS_CODES: + raise FetchError(response) + return response def transport_response_to_string(self, response): """Implements SWHListerBase.transport_response_to_string for HTTP given