Improve exception: don't log exception_{osv, orm, wizard}

bzr revid: ced-6bdaf4ebdab2dcded046448506f94daa0edc4c70
This commit is contained in:
ced 2007-09-05 14:02:26 +00:00
parent a66d67987e
commit c844422d20
3 changed files with 27 additions and 11 deletions

View File

@ -86,7 +86,7 @@ class Service(object):
self._response_process=None
self._response=s(self._response_process_id)
def abortResponse(self,error, description, origin, details):
def abortResponse(self, error, description, origin, details):
import tools
if not tools.config['debug_mode']:
raise Exception("%s -- %s\n\n%s"%(origin,description,details))
@ -208,10 +208,9 @@ class GenericXMLRPCRequestHandler:
if res!=None:
r=res
return r
except Exception,e:
logger = Logger()
tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
logger.notifyChannel("web-services", LOG_ERROR, 'Exception in call: ' + tb_s)
except Exception, e:
tb_s = reduce(lambda x, y: x+y, traceback.format_exception(
sys.exc_type, sys.exc_value, sys.exc_traceback))
s=str(e)
import tools
if tools.config['debug_mode']:
@ -320,9 +319,7 @@ class TinySocketClientThread(threading.Thread):
r=res
ts.mysend(r)
except Exception, e:
logger = Logger()
tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
logger.notifyChannel("web-services", LOG_ERROR, 'Exception in call: ' + tb_s)
s=str(e)
import tools
if tools.config['debug_mode']:

View File

@ -34,8 +34,10 @@ import orm
import netsvc
import pooler
import copy
import sys
import psycopg
from netsvc import Logger, LOG_ERROR
module_list = []
module_class_list = {}
@ -101,7 +103,14 @@ class osv_pool(netsvc.Service):
self.abortResponse(1, 'Constraint Error', 'warning',
self._sql_error[key])
self.abortResponse(1, 'Integrity Error', 'warning', inst[0])
except Exception, e:
import traceback
tb_s = reduce(lambda x, y: x+y, traceback.format_exception(
sys.exc_type, sys.exc_value, sys.exc_traceback))
logger = Logger()
logger.notifyChannel("web-services", LOG_ERROR,
'Exception in call: ' + tb_s)
raise
def execute(self, db, uid, obj, method, *args, **kw):
db, pool = pooler.get_db_and_pool(db)

View File

@ -36,11 +36,14 @@ import pooler
from osv.osv import except_osv
from osv.orm import except_orm
from netsvc import Logger, LOG_ERROR
import sys
class except_wizard(Exception):
def __init__(self, name, value):
self.name = name
self.value = value
self.args = (name, value)
class interface(netsvc.Service):
states = {}
@ -82,9 +85,6 @@ class interface(netsvc.Service):
lang = context.get('lang', False)
if result_def['type'] == 'action':
res['action'] = result_def['action'](self, cr, uid, data, context)
elif result_def['type'] == 'choice':
next_state = result_def['next_state'](self, cr, uid, data, context)
return self.execute_cr(cr, uid, data, next_state, context)
elif result_def['type'] == 'form':
fields = copy.copy(result_def['fields'])
arch = copy.copy(result_def['arch'])
@ -146,7 +146,17 @@ class interface(netsvc.Service):
or isinstance(e, except_orm):
self.abortResponse(2, e.name, 'warning', e.value)
else:
import traceback
tb_s = reduce(lambda x, y: x+y, traceback.format_exception(
sys.exc_type, sys.exc_value, sys.exc_traceback))
logger = Logger()
logger.notifyChannel("web-services", LOG_ERROR,
'Exception in call: ' + tb_s)
raise
if result_def['type'] == 'choice':
next_state = result_def['next_state'](self, cr, uid, data, context)
return self.execute_cr(cr, uid, data, next_state, context)
return res
def execute(self, db, uid, data, state='init', context=None):