123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- # -*- coding:utf-8 -*-
- # Copyright 2017 Xiaomi, Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- from .bean import Bean
- from rrd.store import alarm_db
- class Event(Bean):
- _db = alarm_db
- _tbl = 'events'
- _cols = 'id, event_caseId, step, cond, status, timestamp'
- def __init__(self, id, event_caseId, step, cond, status, timestamp):
- self.id = id
- self.event_caseId = event_caseId
- self.step = step
- self.cond = cond
- self.status = status
- self.timestamp = timestamp
-
- @classmethod
- def query(cls, page, limit, event_caseId):
- where = 'event_caseId = %s'
- params = [event_caseId]
-
- vs = cls.select_vs(where=where, params=params, page=page, limit=limit, order='timestamp desc')
- total = cls.total(where, params)
- return vs, total
- class EventCase(Bean):
- _db = alarm_db
- _tbl = 'event_cases'
- _cols = 'id, endpoint, metric, func, cond, note, max_step, current_step, priority, status, timestamp, update_at, closed_at, closed_note, user_modified, tpl_creator, expression_id, strategy_id, template_id, process_note, process_status'
- def __init__(self, id, endpoint, metric, func, cond, note, max_step, current_step, priority,\
- status, timestamp, update_at, closed_at, closed_note, user_modified, tpl_creator, \
- expression_id, strategy_id, template_id, process_note, process_status):
- self.id = id
- self.endpoint = endpoint
- self.metric = metric
- self.func = func
- self.cond = cond
- self.note = note
- self.max_step = max_step
- self.current_step = current_step
- self.priority = priority
- self.status = status
- self.timestamp = timestamp
- self.update_at = update_at
- self.closed_at = closed_at
- self.closed_note = closed_note
- self.user_modified = user_modified
- self.tpl_creator = tpl_creator
- self.expression_id = expression_id
- self.strategy_id = strategy_id
- self.template_id = template_id
- self.process_note = process_note
- self.process_status = process_status
- @classmethod
- def query(cls, page, limit, endpoint_query, metric_query, status):
- where = '1=1'
- params = []
- if status == "PROBLEM" or status == "OK":
- where = 'status = %s'
- params = [status]
- if endpoint_query != "":
- where += ' and endpoint like %s'
- params.append('%' + endpoint_query + '%')
- if metric_query != "":
- where += ' and metric like %s'
- params.append('%' + metric_query + '%')
- vs = cls.select_vs(where=where, params=params, page=page, limit=limit, order='update_at desc')
- total = cls.total(where, params)
- return vs, total
- class EventNote(Bean):
- _db = alarm_db
- _tbl = 'event_note'
- _cols = 'id, event_caseId, note, case_id, status, timestamp, user_id'
- def __init__(self, id, event_caseId, note, case_id, status, timestamp, user_id):
- self.id = id
- self.event_caseId = event_caseId
- self.note = note
- self.case_id = case_id
- self.status = status
- self.timestamp = timestamp
- self.user_id = user_id
- #desc events;
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #| Field | Type | Null | Key | Default | Extra |
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #| id | mediumint(9) | NO | PRI | NULL | auto_increment |
- #| event_caseId | varchar(50) | YES | MUL | NULL | |
- #| step | int(10) unsigned | YES | | NULL | |
- #| cond | varchar(200) | NO | | NULL | |
- #| status | int(3) unsigned | YES | | 0 | |
- #| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #
- #desc event_note;
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #| Field | Type | Null | Key | Default | Extra |
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #| id | mediumint(9) | NO | PRI | NULL | auto_increment |
- #| event_caseId | varchar(50) | YES | MUL | NULL | |
- #| note | varchar(300) | YES | | NULL | |
- #| case_id | varchar(20) | YES | | NULL | |
- #| status | varchar(15) | YES | | NULL | |
- #| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
- #| user_id | int(10) unsigned | YES | MUL | NULL | |
- #+--------------+------------------+------+-----+-------------------+-----------------------------+
- #
- #desc event_cases;
- #+----------------+------------------+------+-----+-------------------+-----------------------------+
- #| Field | Type | Null | Key | Default | Extra |
- #+----------------+------------------+------+-----+-------------------+-----------------------------+
- #| id | varchar(50) | NO | PRI | NULL | |
- #| endpoint | varchar(100) | NO | MUL | NULL | |
- #| metric | varchar(200) | NO | | NULL | |
- #| func | varchar(50) | YES | | NULL | |
- #| cond | varchar(200) | NO | | NULL | |
- #| note | varchar(500) | YES | | NULL | |
- #| max_step | int(10) unsigned | YES | | NULL | |
- #| current_step | int(10) unsigned | YES | | NULL | |
- #| priority | int(6) | NO | | NULL | |
- #| status | varchar(20) | NO | | NULL | |
- #| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
- #| update_at | timestamp | YES | | NULL | |
- #| closed_at | timestamp | YES | | NULL | |
- #| closed_note | varchar(250) | YES | | NULL | |
- #| user_modified | int(10) unsigned | YES | | NULL | |
- #| tpl_creator | varchar(64) | YES | | NULL | |
- #| expression_id | int(10) unsigned | YES | | NULL | |
- #| strategy_id | int(10) unsigned | YES | | NULL | |
- #| template_id | int(10) unsigned | YES | | NULL | |
- #| process_note | mediumint(9) | YES | | NULL | |
- #| process_status | varchar(20) | YES | | unresolved | |
- #+----------------+------------------+------+-----+-------------------+-----------------------------+
|