Exemplo n.º 1
0
    def stats(self, datasource):

        stats_time = datetime.datetime.fromtimestamp(self.next_time[datasource])
        LogStuff = LogstuffTmpl.gen(stats_time.strftime('%Y%m%d'))

        num_rows = 0
        for ds, rules in self.datasource_rules.iteritems():
            if ds != datasource:
                continue
            for rule_id in rules.keys():
                result = []
                for method in rules[rule_id]:
                    try:
                        detail = method.stats()
                    except Exception, e:
                        logging.exception('Fail to stats.')
                        continue
                    if detail:
                        result.append(detail)

                if not result:
                    del rules[rule_id]
                    continue

                row = LogStuff()
                row.ds_id = rule_id
                row.time = stats_time
                row.detail = "\n\n".join(result)
                self.sakuya_db.add(row)
                num_rows += 1
Exemplo n.º 2
0
    row = sakuya_db.query(Events).filter(Events.id == event_id).first()

    row.deal_status = 1

    sakuya_db.commit()
    return {"status": "ok", "event_id": event_id}


@app.get('/ajax/detail')
def detail(sakuya_db):

    try:
        tid = int(request.params['tid'])
        dt = datetime.datetime.strptime(request.params['dt'], '%Y-%m-%d %H:%M')

    except Exception, e:
        return ''

    Logstuff = LogstuffTmpl.gen(dt.strftime('%Y%m%d'))
    row = sakuya_db.\
          query(Logstuff.detail).\
          filter_by(ds_id=tid, time=dt).\
          order_by(Logstuff.id.desc()).\
          first()

    if row is None or row.detail is None:
        return ''

    return row.detail.replace('\n', '<br>')
Exemplo n.º 3
0
        if detail is not None and len(detail) == 0:
            detail = None

    except Exception, e:
        return util.output('error', msg='Invalid params.')

    try:
        if data is not None:
            row = ChartdataTmpl.gen(dt.strftime('%Y%m%d'))()
            row.ds_id = tid
            row.time = dt
            row.data = data
            sakuya_db.add(row)

        if detail is not None:
            row = LogstuffTmpl.gen(dt.strftime('%Y%m%d'))()
            row.ds_id = tid
            row.time = dt
            row.detail = detail
            sakuya_db.add(row)

        sakuya_db.commit()

    except Exception, e:
        sakuya_db.rollback()
        traceback.print_exc()
        return util.output('error', msg='Internal error.')

    try:
        chart.api_ip = util.ip2long(request['REMOTE_ADDR'])
        chart.api_ts = util.timestamp()
Exemplo n.º 4
0
    event_id = request.params['event_id']

    row = sakuya_db.query(Events).filter(Events.id==event_id).first()

    row.deal_status = 1

    sakuya_db.commit()
    return {"status": "ok", "event_id": event_id}

@app.get('/ajax/detail')
def detail(sakuya_db):

    try:
        tid = int(request.params['tid'])
        dt = datetime.datetime.strptime(request.params['dt'], '%Y-%m-%d %H:%M')

    except Exception, e:
        return ''

    Logstuff = LogstuffTmpl.gen(dt.strftime('%Y%m%d'))
    row = sakuya_db.\
          query(Logstuff.detail).\
          filter_by(ds_id=tid, time=dt).\
          order_by(Logstuff.id.desc()).\
          first()

    if row is None or row.detail is None:
        return ''

    return row.detail.replace('\n', '<br>')
Exemplo n.º 5
0
        if detail is not None and len(detail) == 0:
            detail = None

    except Exception, e:
        return util.output('error', msg='Invalid params.')

    try:
        if data is not None:
            row = ChartdataTmpl.gen(dt.strftime('%Y%m%d'))()
            row.ds_id = tid
            row.time = dt
            row.data = data
            sakuya_db.add(row)

        if detail is not None:
            row = LogstuffTmpl.gen(dt.strftime('%Y%m%d'))()
            row.ds_id = tid
            row.time = dt
            row.detail = detail
            sakuya_db.add(row)

        sakuya_db.commit()

    except Exception, e:
        sakuya_db.rollback()
        traceback.print_exc()
        return util.output('error', msg='Internal error.')

    try:
        chart.api_ip = util.ip2long(request['REMOTE_ADDR'])
        chart.api_ts = util.timestamp()