Commit a1bd955d by sanshi

告警控制

parent d5bcacb5
...@@ -17,6 +17,7 @@ from WorkData.Zabbix.hosts import DataHosts ...@@ -17,6 +17,7 @@ from WorkData.Zabbix.hosts import DataHosts
from WorkData.Zabbix.events import DataEvents from WorkData.Zabbix.events import DataEvents
from WorkData.Zabbix.items import DataItems from WorkData.Zabbix.items import DataItems
from WorkData.Zabbix.functions import DataFunctions from WorkData.Zabbix.functions import DataFunctions
from WorkData.Zabbix.problem import DataProblem
from WorkCase import CaseBase from WorkCase import CaseBase
...@@ -60,6 +61,9 @@ class TestProblemAcknowledge(object): ...@@ -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) 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) 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 @classmethod
def teardown_class(cls): def teardown_class(cls):
cls.log.debug("结束执行测试套件.......") cls.log.debug("结束执行测试套件.......")
...@@ -101,6 +105,12 @@ class TestProblemAcknowledge(object): ...@@ -101,6 +105,12 @@ class TestProblemAcknowledge(object):
sql = DataEvents().select_all_from_allKeys(session=session, eventid=eventid, objectid=objectid) sql = DataEvents().select_all_from_allKeys(session=session, eventid=eventid, objectid=objectid)
return sql 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") @allure.step("查询表:items")
def select_items(self, hostid=None): def select_items(self, hostid=None):
session = self.db_session() session = self.db_session()
...@@ -119,6 +129,9 @@ class TestProblemAcknowledge(object): ...@@ -119,6 +129,9 @@ class TestProblemAcknowledge(object):
session = self.db_session() session = self.db_session()
sql = DataEvents().insert_one(session, eventid=eventid, source=source, _object=_object, objectid=objectid, clock=clock, 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) 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 return sql
@allure.step("断言返回结果:校验排序") @allure.step("断言返回结果:校验排序")
...@@ -204,12 +217,35 @@ class TestProblemAcknowledge(object): ...@@ -204,12 +217,35 @@ class TestProblemAcknowledge(object):
return self.eventid return self.eventid
@allure.step("校验告警状态") @allure.step("校验告警状态")
def check_sql(self, eventid): def check_sql(self, eventid, action):
sql = self.select_events(eventid=eventid) time.sleep(30)
assert sql != []
for x, y in enumerate(sql): if action == 1:
assert y.acknowledged == 1 sql = self.select_events(eventid=eventid)
assert x == 0 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为空,返回异常") @allure.title("problem.acknowledge:action为空,返回异常")
@allure.story("告警忽略/关闭:action为空,返回异常") @allure.story("告警忽略/关闭:action为空,返回异常")
...@@ -234,7 +270,7 @@ class TestProblemAcknowledge(object): ...@@ -234,7 +270,7 @@ class TestProblemAcknowledge(object):
self.case_create(num="03", objectid=self.triggers_ids[0], acknowledged=0) self.case_create(num="03", objectid=self.triggers_ids[0], acknowledged=0)
response = self.problem_acknowledge(eventids=[self.eventid], action=1) response = self.problem_acknowledge(eventids=[self.eventid], action=1)
self.check_code(response=response, code=0) 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.title("problem.acknowledge:action=2 忽略一个告警")
@allure.story("告警忽略/关闭:action=2 忽略一个告警") @allure.story("告警忽略/关闭:action=2 忽略一个告警")
...@@ -243,7 +279,7 @@ class TestProblemAcknowledge(object): ...@@ -243,7 +279,7 @@ class TestProblemAcknowledge(object):
self.case_create(num="04", objectid=self.triggers_ids[0], acknowledged=0) self.case_create(num="04", objectid=self.triggers_ids[0], acknowledged=0)
response = self.problem_acknowledge(eventids=[self.eventid], action=2) response = self.problem_acknowledge(eventids=[self.eventid], action=2)
self.check_code(response=response, code=0) 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.title("problem.acknowledge:action=1 关闭多个告警")
@allure.story("告警忽略/关闭:action=1 关闭多个告警") @allure.story("告警忽略/关闭:action=1 关闭多个告警")
...@@ -254,9 +290,9 @@ class TestProblemAcknowledge(object): ...@@ -254,9 +290,9 @@ class TestProblemAcknowledge(object):
eventid_3 = self.case_create(num="053", objectid=self.triggers_ids[2], acknowledged=0) 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) response = self.problem_acknowledge(eventids=[eventid_1, eventid_2, eventid_3], action=1)
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
# self.check_sql(eventid=eventid_1) self.check_sql(eventid=eventid_1, action=1)
# self.check_sql(eventid=eventid_2) self.check_sql(eventid=eventid_2, action=1)
# self.check_sql(eventid=eventid_3) self.check_sql(eventid=eventid_3, action=1)
@allure.title("problem.acknowledge:action=2 忽略多个告警") @allure.title("problem.acknowledge:action=2 忽略多个告警")
@allure.story("告警忽略/关闭:action=2 忽略多个告警") @allure.story("告警忽略/关闭:action=2 忽略多个告警")
...@@ -267,9 +303,9 @@ class TestProblemAcknowledge(object): ...@@ -267,9 +303,9 @@ class TestProblemAcknowledge(object):
eventid_3 = self.case_create(num="063", objectid=self.triggers_ids[2], acknowledged=0) 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) response = self.problem_acknowledge(eventids=[eventid_1, eventid_2, eventid_3], action=2)
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.check_sql(eventid=eventid_1) self.check_sql(eventid=eventid_1, action=2)
self.check_sql(eventid=eventid_2) self.check_sql(eventid=eventid_2, action=2)
self.check_sql(eventid=eventid_3) self.check_sql(eventid=eventid_3, action=2)
if __name__ == "__main__": if __name__ == "__main__":
...@@ -286,4 +322,4 @@ if __name__ == "__main__": ...@@ -286,4 +322,4 @@ if __name__ == "__main__":
# a = TestProblemAcknowledge() # a = TestProblemAcknowledge()
# a.setup_class() # a.setup_class()
# a.test_case_04() # a.test_case_03()
...@@ -90,3 +90,55 @@ class DataProblem(object): ...@@ -90,3 +90,55 @@ class DataProblem(object):
self.log.error(error) self.log.error(error)
session.close() session.close()
return error 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