def log_ticket(ticket, logger=LOG): """Log a ticket.""" if not ticket: return # Ticket may have have the app prepended, for example: # zcomx/108.162.141.78.2016-06-20.14-36-01.3ac605e2-5ff9-47f1-872f-ab291cdb if '/' in ticket: parts = ticket.split(os.sep) ticket_id = parts[-1] else: ticket_id = ticket if not ticket_id: return request = current.request ticket_storage = TicketStorage() app = None # 'app' is an errors sub directory, not used contents = ticket_storage.load(request, app, ticket_id) traceback = contents.get('traceback') if not traceback: return for line in traceback.split("\n"): logger.error(line)
ignore_rw = True response.view = 'appadmin.html' if menu: response.menu = [[T('design'), False, URL('admin', 'default', 'design', args=[request.application])], [T('db'), False, URL('index')], [T('state'), False, URL('state')], [T('cache'), False, URL('ccache')]] # ########################################################## # ## auxiliary functions # ########################################################### if False and request.tickets_db: from gluon.restricted import TicketStorage ts = TicketStorage() ts._get_table(request.tickets_db, ts.tablename, request.application) def get_databases(request): dbs = {} for (key, value) in global_env.items(): try: cond = isinstance(value, GQLDB) except: cond = isinstance(value, SQLDB) if cond: dbs[key] = value return dbs databases = get_databases(None)
SLEEP_MINUTES = 5 errors_path = os.path.join(request.folder, 'errors') try: db_string = open(os.path.join(request.folder, 'private', 'ticket_storage.txt'), encoding='UTF-8').read().replace('\r', '').replace('\n', '').strip() except: db_string = 'sqlite://storage.db' db_path = os.path.join(request.folder, 'databases') tk_db = DAL(db_string, folder=db_path, auto_import=True) ts = TicketStorage(db=tk_db) tk_table = ts._get_table(db=tk_db, tablename=ts.tablename, app=request.application) hashes = {} while 1: if request.tickets_db: print("You're storing tickets yet in database") sys.exit(1) for file in os.listdir(errors_path): filename = os.path.join(errors_path, file) modified_time = os.stat(filename)[stat.ST_MTIME]
from gluon.utils import md5_hash from gluon.restricted import RestrictedError, TicketStorage from gluon import DAL SLEEP_MINUTES = 5 errors_path = os.path.join(request.folder, 'errors') try: db_string = open(os.path.join(request.folder, 'private', 'ticket_storage.txt')).read().replace('\r', '').replace('\n', '').strip() except: db_string = 'sqlite://storage.db' db_path = os.path.join(request.folder, 'databases') tk_db = DAL(db_string, folder=db_path, auto_import=True) ts = TicketStorage(db=tk_db) tk_table = ts._get_table( db=tk_db, tablename=ts.tablename, app=request.application) hashes = {} while 1: if request.tickets_db: print "You're storing tickets yet in database" sys.exit(1) for file in os.listdir(errors_path): filename = os.path.join(errors_path, file) modified_time = os.stat(filename)[stat.ST_MTIME]