2022-01-28 18:45:54 +00:00
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
from flask import Flask
|
2023-10-09 17:02:23 +00:00
|
|
|
|
from units import consul_kv,consul_manager
|
|
|
|
|
import uuid,sys
|
2022-12-06 17:25:09 +00:00
|
|
|
|
from units.config_log import *
|
2022-07-17 14:38:23 +00:00
|
|
|
|
|
2023-10-09 17:02:23 +00:00
|
|
|
|
if consul_manager.get_consul_ver() == False:
|
|
|
|
|
sys.exit("请求consul异常, 程序退出.")
|
2023-10-09 03:47:42 +00:00
|
|
|
|
|
2023-10-09 17:02:23 +00:00
|
|
|
|
skey_path = 'ConsulManager/assets/secret/'
|
|
|
|
|
if consul_kv.get_kv_dict(skey_path + 'skey') == {}:
|
2023-10-09 03:47:42 +00:00
|
|
|
|
from datetime import datetime
|
|
|
|
|
now = datetime.strftime(datetime.now(), '%Y-%m-%d_%H-%M-%S')
|
|
|
|
|
skeyuid = ''.join(str(uuid.uuid4()).split('-'))
|
2023-10-09 17:02:23 +00:00
|
|
|
|
consul_kv.put_kv(skey_path + 'skey',{'sk':skeyuid})
|
|
|
|
|
consul_kv.put_kv(f'{skey_path}bak-skey{now}',{'sk':skeyuid})
|
|
|
|
|
logger.warning(f"【初始化SKey完成】")
|
2022-01-28 18:45:54 +00:00
|
|
|
|
|
2022-11-18 19:50:41 +00:00
|
|
|
|
from views import login, blackbox, consul, jobs, nodes, selfnode, selfrds, selfredis, avd, exp, jms, edit_cloud, ldap, rds, redis
|
2022-11-22 10:09:32 +00:00
|
|
|
|
from views.prom import cloud_metrics
|
2022-04-09 01:35:50 +00:00
|
|
|
|
from units.cloud import huaweicloud,alicloud,tencent_cloud
|
2022-06-11 11:26:35 +00:00
|
|
|
|
from units.avd import avd_list
|
2022-07-17 14:38:23 +00:00
|
|
|
|
from units.jms import sync_jms
|
|
|
|
|
|
2022-01-28 18:45:54 +00:00
|
|
|
|
app = Flask(__name__)
|
2022-07-17 15:14:29 +00:00
|
|
|
|
#非nginx调试,解决跨域CORS问题
|
|
|
|
|
#CORS(app, supports_credentials=True)
|
|
|
|
|
|
2022-01-28 18:45:54 +00:00
|
|
|
|
app.register_blueprint(login.blueprint)
|
|
|
|
|
app.register_blueprint(blackbox.blueprint)
|
2022-02-10 15:08:12 +00:00
|
|
|
|
app.register_blueprint(consul.blueprint)
|
2022-04-09 01:35:50 +00:00
|
|
|
|
app.register_blueprint(jobs.blueprint)
|
|
|
|
|
app.register_blueprint(nodes.blueprint)
|
2022-05-08 12:37:24 +00:00
|
|
|
|
app.register_blueprint(selfnode.blueprint)
|
2022-11-13 17:20:19 +00:00
|
|
|
|
app.register_blueprint(selfrds.blueprint)
|
2022-11-18 19:50:41 +00:00
|
|
|
|
app.register_blueprint(selfredis.blueprint)
|
2022-06-11 11:26:35 +00:00
|
|
|
|
app.register_blueprint(avd.blueprint)
|
2022-06-30 23:58:29 +00:00
|
|
|
|
app.register_blueprint(exp.blueprint)
|
2022-07-17 14:38:23 +00:00
|
|
|
|
app.register_blueprint(jms.blueprint)
|
2022-10-30 06:41:18 +00:00
|
|
|
|
app.register_blueprint(edit_cloud.blueprint)
|
2022-11-22 10:09:32 +00:00
|
|
|
|
app.register_blueprint(cloud_metrics.blueprint)
|
2022-11-15 19:35:43 +00:00
|
|
|
|
app.register_blueprint(ldap.blueprint)
|
2022-11-17 06:22:36 +00:00
|
|
|
|
app.register_blueprint(rds.blueprint)
|
2022-11-18 19:50:41 +00:00
|
|
|
|
app.register_blueprint(redis.blueprint)
|
|
|
|
|
|
2022-04-09 01:35:50 +00:00
|
|
|
|
class Config(object):
|
|
|
|
|
JOBS = []
|
|
|
|
|
SCHEDULER_API_ENABLED = True
|
2022-07-17 14:38:23 +00:00
|
|
|
|
|
2022-06-30 23:58:29 +00:00
|
|
|
|
ecs_jobs = consul_kv.get_kv_dict('ConsulManager/jobs')
|
2022-06-11 11:26:35 +00:00
|
|
|
|
avd_jobs = consul_kv.get_kv_dict('ConsulManager/avd/jobs')
|
2022-06-30 23:58:29 +00:00
|
|
|
|
exp_jobs = consul_kv.get_kv_dict('ConsulManager/exp/jobs')
|
2022-07-17 14:38:23 +00:00
|
|
|
|
jms_jobs = consul_kv.get_kv_dict('ConsulManager/jms/jobs')
|
|
|
|
|
init_jobs = { **ecs_jobs, **avd_jobs, **exp_jobs, **jms_jobs }
|
2022-06-11 11:26:35 +00:00
|
|
|
|
|
2022-04-09 01:35:50 +00:00
|
|
|
|
if init_jobs is not None:
|
|
|
|
|
for k,v in init_jobs.items():
|
2022-12-06 17:25:09 +00:00
|
|
|
|
logger.info(f"初始化任务:{k}:{v['args']},{v['minutes']}m")
|
2022-04-09 01:35:50 +00:00
|
|
|
|
Config.JOBS = init_jobs.values()
|
2022-07-17 14:38:23 +00:00
|
|
|
|
|
2022-04-09 01:35:50 +00:00
|
|
|
|
app.config.from_object(Config())
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
scheduler = jobs.init()
|
|
|
|
|
scheduler.init_app(app)
|
|
|
|
|
scheduler.start()
|
2022-01-28 18:45:54 +00:00
|
|
|
|
app.run(host="0.0.0.0", port=2026)
|