Exemple #1
0
def error_panel(db):

    host = zoom.system.request.host

    data = db(
        """
        select
            log.id,
            username,
            path,
            timestamp
        from log left join users on log.user_id = users.id
        where log.status in ("E") and timestamp>=%s
        and server = %s
        order by log.id desc
        limit 10
        """, today(), host)

    rows = []
    for rec in data:
        row = [
            link_to(str(rec[0]), '/admin/entry/' + str(rec[0])),
            link_to_user(rec[1]),
            rec[2],
            how_long_ago(rec[3]),
        ]
        rows.append(row)

    labels = 'id', 'user', 'path', 'when'
    return zoom.browse(rows, labels=labels, title=link_to_page('Errors'))
Exemple #2
0
def users_panel(db):

    host = zoom.system.request.host

    data = db(
        """
    select
        users.username,
        max(log.timestamp) as timestamp,
        count(*) as requests
    from log, users
        where log.user_id = users.id
        and timestamp >= %s
        and server = %s
        and path not like "%%\\/\\_%%"
    group by users.username
    order by timestamp desc
    limit 10
    """,
        today() - datetime.timedelta(days=14), host)

    rows = []
    for rec in data:
        row = [
            link_to_user(rec[0]),
            how_long_ago(rec[1]),
            rec[2],
        ]
        rows.append(row)

    labels = 'user', 'last seen', 'requests'
    return zoom.browse(rows, labels=labels, title=link_to_page('Users'))
Exemple #3
0
def activity_panel(db):

    host = zoom.system.request.host

    data = db(
        """
    select
        log.id,
        users.username,
        log.address,
        log.path,
        log.timestamp,
        log.elapsed
    from log left join users on log.user_id = users.id
    where server = %s and path not like "%%\\/\\_%%"
    and log.status = 'C'
    order by timestamp desc
    limit 15
    """, host)

    rows = []
    for rec in data:
        row = [
            link_to(str(rec[0]), '/admin/entry/' + str(rec[0])),
            link_to_user(rec[1]),
            rec[2],
            zoom.link_to(rec[3]),
            how_long_ago(rec[4]),
            rec[4],
            rec[5],
        ]
        rows.append(row)

    labels = 'id', 'user', 'address', 'path', 'when', 'timestamp', 'elapsed'
    return zoom.browse(rows, labels=labels, title=link_to_page('Requests'))
Exemple #4
0
    def index(self, **k):
        index_query = "select distinct kind from entities"
        db = self.model.site.db
        queues = Queues(db)

        engines = ('<H3>Engines</H3>' +
                   ', '.join(str(e[0]) for e in db('show engines')))

        entities = ('<H3>Entities</H3>' + ', '.join([
            link_to(kind, 'storage', 'entity', kind)
            for kind, in db(index_query)
        ]))

        tables = ('<H3>Tables</H3>' + ', '.join([
            link_to(kind, 'storage', 'table', kind)
            for kind, in db('show tables')
        ]))

        zap = link_to_page('clear queues', 'clear_queues') + '<br>'
        queues = ('<H3>Queues</H3>' + zap + ', '.join([
            link_to(kind, 'storage', 'queue', kind)
            for kind in Queues(db).topics()
        ]))

        content = tables + entities + queues
        database_info = 'database: %s' % zoom.system.site.db.connect_string

        return Page(content, title='Storage', subtitle=database_info)