Commit a1bd955d by sanshi

告警控制

parent d5bcacb5
......@@ -17,6 +17,7 @@ from WorkData.Zabbix.hosts import DataHosts
from WorkData.Zabbix.events import DataEvents
from WorkData.Zabbix.items import DataItems
from WorkData.Zabbix.functions import DataFunctions
from WorkData.Zabbix.problem import DataProblem
from WorkCase import CaseBase
......@@ -60,6 +61,9 @@ class TestProblemAcknowledge(object):
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataEvents().delete_like_name(session=session, name=cls.base_name)
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataProblem().delete_like_name(session=session, name=cls.base_name)
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
......@@ -101,6 +105,12 @@ class TestProblemAcknowledge(object):
sql = DataEvents().select_all_from_allKeys(session=session, eventid=eventid, objectid=objectid)
return sql
@allure.step("查询表:problem")
def select_problem(self, eventid=None):
session = self.db_session()
sql = DataProblem().select_all_from_allKeys(session=session, eventid=eventid)
return sql
@allure.step("查询表:items")
def select_items(self, hostid=None):
session = self.db_session()
......@@ -119,6 +129,9 @@ class TestProblemAcknowledge(object):
session = self.db_session()
sql = DataEvents().insert_one(session, eventid=eventid, source=source, _object=_object, objectid=objectid, clock=clock,
value=value, acknowledged=acknowledged, ns=ns, name=name, severity=severity)
DataProblem().insert_one(session, eventid=eventid, source=source, _object=_object, objectid=objectid, clock=clock,
r_eventid=None, r_clock=0, r_ns=0, correlationid=0, userid=0,
acknowledged=acknowledged, ns=ns, name=name, severity=severity)
return sql
@allure.step("断言返回结果:校验排序")
......@@ -204,11 +217,34 @@ class TestProblemAcknowledge(object):
return self.eventid
@allure.step("校验告警状态")
def check_sql(self, eventid):
def check_sql(self, eventid, action):
time.sleep(30)
if action == 1:
sql = self.select_events(eventid=eventid)
assert sql != []
for x, y in enumerate(sql):
assert y.acknowledged == 0
assert x == 0
sql = self.select_problem(eventid=eventid)
assert sql != []
for x, y in enumerate(sql):
assert y.acknowledged == 0
assert y.r_clock != 0
assert x == 0
else:
sql = self.select_events(eventid=eventid)
assert sql != []
for x, y in enumerate(sql):
assert y.acknowledged == 1
assert x == 0
sql = self.select_problem(eventid=eventid)
assert sql != []
for x, y in enumerate(sql):
assert y.acknowledged == 1
assert y.r_clock == 0
assert x == 0
@allure.title("problem.acknowledge:action为空,返回异常")
......@@ -234,7 +270,7 @@ class TestProblemAcknowledge(object):
self.case_create(num="03", objectid=self.triggers_ids[0], acknowledged=0)
response = self.problem_acknowledge(eventids=[self.eventid], action=1)
self.check_code(response=response, code=0)
# self.check_sql(eventid=self.eventid)
self.check_sql(eventid=self.eventid, action=1)
@allure.title("problem.acknowledge:action=2 忽略一个告警")
@allure.story("告警忽略/关闭:action=2 忽略一个告警")
......@@ -243,7 +279,7 @@ class TestProblemAcknowledge(object):
self.case_create(num="04", objectid=self.triggers_ids[0], acknowledged=0)
response = self.problem_acknowledge(eventids=[self.eventid], action=2)
self.check_code(response=response, code=0)
self.check_sql(eventid=self.eventid)
self.check_sql(eventid=self.eventid, action=2)
@allure.title("problem.acknowledge:action=1 关闭多个告警")
@allure.story("告警忽略/关闭:action=1 关闭多个告警")
......@@ -254,9 +290,9 @@ class TestProblemAcknowledge(object):
eventid_3 = self.case_create(num="053", objectid=self.triggers_ids[2], acknowledged=0)
response = self.problem_acknowledge(eventids=[eventid_1, eventid_2, eventid_3], action=1)
self.check_code(response=response, code=0)
# self.check_sql(eventid=eventid_1)
# self.check_sql(eventid=eventid_2)
# self.check_sql(eventid=eventid_3)
self.check_sql(eventid=eventid_1, action=1)
self.check_sql(eventid=eventid_2, action=1)
self.check_sql(eventid=eventid_3, action=1)
@allure.title("problem.acknowledge:action=2 忽略多个告警")
@allure.story("告警忽略/关闭:action=2 忽略多个告警")
......@@ -267,9 +303,9 @@ class TestProblemAcknowledge(object):
eventid_3 = self.case_create(num="063", objectid=self.triggers_ids[2], acknowledged=0)
response = self.problem_acknowledge(eventids=[eventid_1, eventid_2, eventid_3], action=2)
self.check_code(response=response, code=0)
self.check_sql(eventid=eventid_1)
self.check_sql(eventid=eventid_2)
self.check_sql(eventid=eventid_3)
self.check_sql(eventid=eventid_1, action=2)
self.check_sql(eventid=eventid_2, action=2)
self.check_sql(eventid=eventid_3, action=2)
if __name__ == "__main__":
......@@ -286,4 +322,4 @@ if __name__ == "__main__":
# a = TestProblemAcknowledge()
# a.setup_class()
# a.test_case_04()
# a.test_case_03()
......@@ -90,3 +90,55 @@ class DataProblem(object):
self.log.error(error)
session.close()
return error
def insert_one(self, session, eventid=None, source=None, _object=None, objectid=None, clock=None,
r_eventid=None, r_clock=None, r_ns=None, correlationid=None, userid=None,
acknowledged=None, ns=None, name=None, severity=None):
"""
:param session: 指针
:param eventid:
:param source:
:param _object:
:param objectid:
:param clock:
:param r_eventid:
:param r_clock:
:param r_ns:
:param correlationid:
:param userid:
:param acknowledged:
:param ns:
:param name:
:param severity:
:return:
"""
self.log.debug("新增表数据:")
try:
base = UtilsDataBase()
base.add_param(_key="eventid", value=eventid)
base.add_param(_key="source", value=source)
base.add_param(_key="object", value=_object)
base.add_param(_key="objectid", value=objectid)
base.add_param(_key="clock", value=clock)
base.add_param(_key="ns", value=ns)
base.add_param(_key="r_eventid", value=r_eventid)
base.add_param(_key="r_clock", value=r_clock)
base.add_param(_key="r_ns", value=r_ns)
base.add_param(_key="correlationid", value=correlationid)
base.add_param(_key="userid", value=userid)
base.add_param(_key="name", value=name)
base.add_param(_key="acknowledged", value=acknowledged)
base.add_param(_key="severity", value=severity)
sql_rep = self.table(**base.param)
session.add(sql_rep)
session.commit()
eventid = sql_rep.eventid
self.log.debug("新增的problem:%s" % eventid)
session.close()
return eventid
except UtilsDataBase().errors as error:
self.log.error("异常:")
self.log.error(error)
session.close()
return error
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment