Example #1
0
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
Example #2
0
def getVersion():
	return getVersionStr()
Example #3
0
def getVersion():
    return getVersionStr()
Example #4
0
def getVersion():
	return getVersionStr("web")