forked from iti-framework/iTi-Flask
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.9 KiB
Python
163 lines
3.9 KiB
Python
from dataclasses import field
|
|
from marshmallow_dataclass import dataclass
|
|
from marshmallow import validates_schema, ValidationError
|
|
from iti.applications.common.utils.schema import BaseSchema, Pagination
|
|
from typing import ClassVar, Optional
|
|
from apiflask import fields
|
|
|
|
@dataclass(base_schema=BaseSchema)
|
|
class AlertLogQuery(Pagination):
|
|
"""
|
|
告警日志信息查询请求
|
|
"""
|
|
alert_tag: str = field(
|
|
default=None,
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "ep1-nd0", "description": "告警标签"},
|
|
},
|
|
)
|
|
status: int = field(
|
|
default=None,
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": 0, "description": "状态"},
|
|
},
|
|
)
|
|
Schema: ClassVar[BaseSchema] = BaseSchema
|
|
|
|
class AlertLogAddRequest(BaseSchema):
|
|
"""
|
|
告警日志信息添加请求
|
|
"""
|
|
|
|
alert_tag = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警标签",
|
|
},
|
|
)
|
|
alert_target_name = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警对象名称",
|
|
},
|
|
)
|
|
trigger_count = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 1,
|
|
"description": "触发次数",
|
|
},
|
|
)
|
|
status = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 0,
|
|
"description": "状态",
|
|
},
|
|
)
|
|
alert_content = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警内容",
|
|
},
|
|
)
|
|
alert_level = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 0,
|
|
"description": "告警级别",
|
|
},
|
|
)
|
|
|
|
class AlertLogUpdateRequest(BaseSchema):
|
|
"""
|
|
告警日志信息更新请求
|
|
"""
|
|
alert_tag = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警标签",
|
|
},
|
|
)
|
|
alert_target_name = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警对象名称",
|
|
},
|
|
)
|
|
trigger_count = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 1,
|
|
"description": "触发次数",
|
|
},
|
|
)
|
|
status = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 0,
|
|
"description": "状态",
|
|
},
|
|
)
|
|
alert_content = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "ep1-nd0",
|
|
"description": "告警内容",
|
|
},
|
|
)
|
|
alert_level = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 0,
|
|
"description": "告警级别",
|
|
},
|
|
)
|
|
|
|
class NodeCollectData(BaseSchema):
|
|
"""
|
|
节点收集数据
|
|
"""
|
|
node_id = fields.Integer(
|
|
required=True,
|
|
metadata={
|
|
"example": 1,
|
|
"description": "节点ID",
|
|
},
|
|
)
|
|
alert_value = fields.String(
|
|
required=True,
|
|
metadata={
|
|
"example": "-2.1",
|
|
"description": "告警值",
|
|
},
|
|
)
|
|
|
|
class NodeAlertLogAddRequest(BaseSchema):
|
|
"""
|
|
节点值异常告警日志信息添加请求
|
|
"""
|
|
node_data_list = fields.List(
|
|
fields.Nested(NodeCollectData),
|
|
required=True,
|
|
metadata={
|
|
"example": [
|
|
{
|
|
"node_id": 1,
|
|
"alert_value": "-2.1",
|
|
},
|
|
{
|
|
"node_id": 2,
|
|
"alert_value": "100",
|
|
},
|
|
],
|
|
"description": "节点收集数据列表",
|
|
},
|
|
) |