ConsulManager/flask-consul/manager.py

54 lines
1.8 KiB
Python
Raw Normal View History

2022-01-28 18:45:54 +00:00
#!/usr/bin/env python3
from flask import Flask
2022-04-09 01:35:50 +00:00
from units import consul_kv
import uuid
2022-07-17 14:38:23 +00:00
2022-04-09 01:35:50 +00:00
skey_path = 'ConsulManager/assets/secret/skey'
if consul_kv.get_kv_dict(skey_path) == {}:
consul_kv.put_kv(skey_path,{'sk':''.join(str(uuid.uuid4()).split('-'))})
2022-01-28 18:45:54 +00:00
2022-10-30 06:41:18 +00:00
from views import login, blackbox, consul, jobs, nodes, selfnode, avd, exp, jms, edit_cloud
from views.prom import cloud_mysql_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-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)
app.register_blueprint(cloud_mysql_metrics.blueprint)
2022-07-17 14:38:23 +00:00
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():
print(f"【初始化任务】{k}{v['args']}{v['minutes']}m", flush=True)
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)