From d3ae4b113504cac29b23cbcbdf2defbc2958bd6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 21 Jan 2020 00:34:55 +0100 Subject: [PATCH] Display nice user message on too many requests issue8935 review276601002 --- tryton/common/common.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tryton/common/common.py b/tryton/common/common.py index 79f7a43c9e..b012fe392d 100644 --- a/tryton/common/common.py +++ b/tryton/common/common.py @@ -893,6 +893,10 @@ def process_exception(exception, *args, **kwargs): PLOCK.release() if args: return rpc_execute(*args) + elif exception.faultCode == str(int(HTTPStatus.TOO_MANY_REQUESTS)): + message( + _('Too many requests. Try again later.'), + msg_type=Gtk.MessageType.ERROR) else: error(exception, exception.faultString) else: @@ -910,10 +914,16 @@ class Login(object): if exception.faultCode == str(int(HTTPStatus.UNAUTHORIZED)): parameters.clear() continue + if (exception.faultCode + == str(int(HTTPStatus.TOO_MANY_REQUESTS))): + message( + _('Too many requests. Try again later.'), + msg_type=Gtk.MessageType.ERROR) + continue if exception.faultCode != 'LoginException': raise - name, message, type = exception.args - value = getattr(self, 'get_%s' % type)(message) + name, msg, type = exception.args + value = getattr(self, 'get_%s' % type)(msg) if value is None: raise TrytonError('QueryCanceled') parameters[name] = value