summaryrefslogtreecommitdiff
path: root/odoo/service
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/service')
-rw-r--r--odoo/service/model.py10
-rw-r--r--odoo/service/wsgi_server.py26
2 files changed, 9 insertions, 27 deletions
diff --git a/odoo/service/model.py b/odoo/service/model.py
index 82a32c2cfc1..731007abd23 100644
--- a/odoo/service/model.py
+++ b/odoo/service/model.py
@@ -9,7 +9,7 @@ import threading
import time
import odoo
-from odoo.exceptions import UserError, ValidationError, QWebException
+from odoo.exceptions import UserError, ValidationError
from odoo.models import check_method_name
from odoo.tools.translate import translate, translate_sql_constraint
from odoo.tools.translate import _
@@ -91,13 +91,7 @@ def check(f):
if odoo.registry(dbname)._init and not odoo.tools.config['test_enable']:
raise odoo.exceptions.Warning('Currently, this database is not fully loaded and can not be used.')
return f(dbname, *args, **kwargs)
- except (OperationalError, QWebException) as e:
- if isinstance(e, QWebException):
- cause = e.qweb.get('cause')
- if isinstance(cause, OperationalError):
- e = cause
- else:
- raise
+ except OperationalError as e:
# Automatically retry the typical transaction serialization errors
if e.pgcode not in PG_CONCURRENCY_ERRORS_TO_RETRY:
raise
diff --git a/odoo/service/wsgi_server.py b/odoo/service/wsgi_server.py
index 65ca8806df9..c2712203804 100644
--- a/odoo/service/wsgi_server.py
+++ b/odoo/service/wsgi_server.py
@@ -35,22 +35,14 @@ RPC_FAULT_CODE_ACCESS_DENIED = 3
RPC_FAULT_CODE_ACCESS_ERROR = 4
def xmlrpc_handle_exception_int(e):
- if isinstance(e, odoo.exceptions.UserError):
- fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, odoo.tools.ustr(e.name))
- elif isinstance(e, odoo.exceptions.RedirectWarning):
+ if isinstance(e, odoo.exceptions.RedirectWarning):
fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e))
- elif isinstance(e, odoo.exceptions.MissingError):
- fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e))
- elif isinstance (e, odoo.exceptions.AccessError):
+ elif isinstance(e, odoo.exceptions.AccessError):
fault = xmlrpclib.Fault(RPC_FAULT_CODE_ACCESS_ERROR, str(e))
elif isinstance(e, odoo.exceptions.AccessDenied):
fault = xmlrpclib.Fault(RPC_FAULT_CODE_ACCESS_DENIED, str(e))
- elif isinstance(e, odoo.exceptions.DeferredException):
- info = e.traceback
- # Which one is the best ?
- formatted_info = "".join(traceback.format_exception(*info))
- #formatted_info = odoo.tools.exception_to_unicode(e) + '\n' + info
- fault = xmlrpclib.Fault(RPC_FAULT_CODE_APPLICATION_ERROR, formatted_info)
+ elif isinstance(e, odoo.exceptions.UserError):
+ fault = xmlrpclib.Fault(RPC_FAULT_CODE_WARNING, str(e))
else:
info = sys.exc_info()
# Which one is the best ?
@@ -61,9 +53,7 @@ def xmlrpc_handle_exception_int(e):
return xmlrpclib.dumps(fault, allow_none=None)
def xmlrpc_handle_exception_string(e):
- if isinstance(e, odoo.exceptions.UserError):
- fault = xmlrpclib.Fault('warning -- %s\n\n%s' % (e.name, e.value), '')
- elif isinstance(e, odoo.exceptions.RedirectWarning):
+ if isinstance(e, odoo.exceptions.RedirectWarning):
fault = xmlrpclib.Fault('warning -- Warning\n\n' + str(e), '')
elif isinstance(e, odoo.exceptions.MissingError):
fault = xmlrpclib.Fault('warning -- MissingError\n\n' + str(e), '')
@@ -71,10 +61,8 @@ def xmlrpc_handle_exception_string(e):
fault = xmlrpclib.Fault('warning -- AccessError\n\n' + str(e), '')
elif isinstance(e, odoo.exceptions.AccessDenied):
fault = xmlrpclib.Fault('AccessDenied', str(e))
- elif isinstance(e, odoo.exceptions.DeferredException):
- info = e.traceback
- formatted_info = "".join(traceback.format_exception(*info))
- fault = xmlrpclib.Fault(odoo.tools.ustr(e), formatted_info)
+ elif isinstance(e, odoo.exceptions.UserError):
+ fault = xmlrpclib.Fault('warning -- UserError\n\n' + str(e), '')
#InternalError
else:
info = sys.exc_info()