From c3238c02f539d04af1cab62ca22ece6bd56cae45 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 10 Aug 2019 11:58:23 +0200 Subject: [PATCH] fargo: do not log 403 response as errors (#35352) --- combo/apps/fargo/models.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/combo/apps/fargo/models.py b/combo/apps/fargo/models.py index 9801341..0e8ecba 100644 --- a/combo/apps/fargo/models.py +++ b/combo/apps/fargo/models.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import logging + from django.conf import settings from django.db import models from django.forms import models as model_forms @@ -25,6 +27,9 @@ from combo.data.library import register_cell_class from combo.utils import requests +logger = logging.getLogger(__name__) + + @register_cell_class class RecentDocumentsCell(CellBase): template_name = 'combo/fargo/recent-documents-cell.html' @@ -62,15 +67,22 @@ class RecentDocumentsCell(CellBase): return hasattr(settings, 'KNOWN_SERVICES') and settings.KNOWN_SERVICES.get('fargo') def get_json(self, path, context): - remote_service = get_fargo_site(self.fargo_site) - response = requests.get(path, + try: + response = requests.get( + path, remote_service=get_fargo_site(self.fargo_site), user=self.get_concerned_user(context), raise_if_not_cached=not(context.get('synchronous')), + log_errors=False, headers={'accept': 'application/json'}) - if response.status_code == 200: + response.raise_for_status() + except requests.RequestException as e: + if not e.response or e.response.status_code != 403: + logger.error('failed to get %s on %s: %s', path, self.fargo_site, e, + extra={'request': context.get('request')}) + return {} + else: return response.json() - return {} def render(self, context): context.update(self.get_json('api/documents/recently-added/', context)) -- 2.23.0.rc1