def dumpException(dump_on_error=True): errorgroup_id = None try: if settings.get_dump_config()[Config.DUMPS_ENABLED]: (type_, exc, _) = sys.exc_info() # web-specific error checks and wrapping from . import AuthError if type_ == AuthError: return if type_ == xmlrpclib.ProtocolError: if exc.errcode == 401: return # prepare backend dumplib for web context dump_lib.tomato_component = Config.TOMATO_MODULE_WEB dump_lib.tomato_version = getVersionStr() dump_lib.settings = settings # dump dump_id = dump_lib.dumpException() if dump_id is None: # try to reconstruct exception group id if isinstance(exc, Error): errorgroup_id = "Error__"+exc.group_id() #fixme: add a second boolean field that indicates whether an error has been dumped else: errorgroup_id = dump_lib.load_dump(dump_id, False)["group_id"] push_all_dumps() except: # avoid endless recursion if dump_on_error: dumpException(dump_on_error=False) return errorgroup_id
def getVersion(): return getVersionStr()
def getVersion(): return getVersionStr("web")