80 lines
2.0 KiB
Python
80 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
system_service.py
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
from domain_admin.config import PROMETHEUS_KEY
|
|
from domain_admin.enums.config_key_enum import ConfigKeyEnum
|
|
from domain_admin.model.system_model import SystemModel
|
|
from domain_admin.utils import md5_util, secret_util
|
|
from domain_admin.utils.flask_ext.app_exception import AppException
|
|
|
|
|
|
def get_system_config():
|
|
"""
|
|
获取系统配置
|
|
:return:
|
|
"""
|
|
rows = SystemModel.select(
|
|
SystemModel.key,
|
|
SystemModel.value,
|
|
)
|
|
|
|
config = {}
|
|
for row in rows:
|
|
config[row.key] = row.value
|
|
|
|
return config
|
|
|
|
|
|
def get_config(key):
|
|
return get_system_config().get(key)
|
|
|
|
|
|
def check_email_config(config):
|
|
if not config['mail_host']:
|
|
raise AppException('未设置发件邮箱服务器地址')
|
|
|
|
if not config['mail_port']:
|
|
raise AppException('未设置发件邮箱服务器端口')
|
|
|
|
if not config['mail_username']:
|
|
raise AppException('未设置发件人邮箱账号')
|
|
|
|
if not config['mail_password']:
|
|
raise AppException('未设置发件人邮箱密码')
|
|
|
|
|
|
def get_email_config():
|
|
config = get_system_config()
|
|
|
|
# check_email_config(config)
|
|
|
|
return config
|
|
|
|
|
|
def init_system_config(app):
|
|
"""
|
|
初始化全局常量配置
|
|
:param app:
|
|
:return:
|
|
"""
|
|
|
|
config = get_system_config()
|
|
|
|
# 旧版本已存在
|
|
app.config[ConfigKeyEnum.SECRET_KEY] = config[ConfigKeyEnum.SECRET_KEY]
|
|
app.config[ConfigKeyEnum.TOKEN_EXPIRE_DAYS] = config[ConfigKeyEnum.TOKEN_EXPIRE_DAYS]
|
|
|
|
# 兼容老版本 prometheus key
|
|
if ConfigKeyEnum.PROMETHEUS_KEY in config:
|
|
app.config[ConfigKeyEnum.PROMETHEUS_KEY] = config[ConfigKeyEnum.PROMETHEUS_KEY]
|
|
else:
|
|
SystemModel.create(
|
|
key=ConfigKeyEnum.PROMETHEUS_KEY,
|
|
value=PROMETHEUS_KEY,
|
|
label='prometheus_key',
|
|
placeholder='prometheus_key'
|
|
)
|
|
app.config[ConfigKeyEnum.PROMETHEUS_KEY] = PROMETHEUS_KEY
|