summaryrefslogtreecommitdiff
path: root/server/apps/model.py
blob: 0748f70adaba7ec10275db86d2a95bd308d95dae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 记录参数值和数据库表字段名之间的双向映射
from bidict import bidict

from settings import *

# 参数与数据表映射关系
tabmapping = bidict({
    "agent": MYSQL_TAB_AGENT,
    "task": MYSQL_TAB_TASK,
    "user": MYSQL_TAB_USER,
    "target": MYSQL_TAB_TARGETDATA,
    "syslog": MYSQL_TAB_SYSLOG, })

# 参数与数据表中时间字段的映射关系
timemapping = {
    "agent": "START_TIME",
    "task": "CREATED_TIME",
    "user": "CREATED_TIME",
    "target": "UPDATED_TIME",
}

# 不同接口的参数(或值)和对应数据表字段的映射关系
keymapping = {
    "agent": bidict({
        "atype": "AGENT_TYPE",
        "status": "STATUS",
        "idle": "IDLE"
    }),
    "target": bidict({
        "cou": "COU",
        "isp": "ISP",
        "IPv6": "IPv6",
        "DNSSEC": "DNSSEC",
        "DoH": "DOH",
        "DoT": "DOT",
        "ADDRv4": "ADDRv4",
        "ADDRv6": "ADDRv6"
    })}

# 所有参数在数据库中对应的数据类型,用于拼接sql语句时特殊处理
typemapping = {
    "atype": "str",
    "status": "int",
    "idle": "int",
    "cou": "str",
    "isp": "str",
    "ip": "str",
    "IPv6": "int",
    "DNSSEC": "int",
    "DoH": "int",
    "DoT": "int",
    "ADDRv4": "str",
    "ADDRv6": "str"
}

# 默认参数
default_data = {
    "agent": {"atype": "all", "status": 2, "idle": 2},
    "target": {"proto": None, "isp": None, "cou": None}
}