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
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>')
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()
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>')