majuna/app/__init__.py

46 lines
1.2 KiB
Python
Raw Normal View History

2022-05-16 11:44:03 +01:00
from flask import Flask, redirect, url_for
from flask.typing import ResponseReturnValue
2022-10-05 15:25:51 +01:00
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from prometheus_client import make_wsgi_app, REGISTRY
2022-03-10 14:26:22 +00:00
import yaml
import sys
2022-03-10 14:26:22 +00:00
from app.extensions import db
from app.extensions import migrate
from app.extensions import bootstrap
2022-10-05 15:25:51 +01:00
from app.models.automation import Automation, AutomationState
2022-03-10 14:26:22 +00:00
from app.portal import portal
from app.tfstate import tfstate
2022-03-10 14:26:22 +00:00
2022-10-05 15:25:51 +01:00
2022-03-10 14:26:22 +00:00
app = Flask(__name__)
app.config.from_file("../config.yaml", load=yaml.safe_load)
2022-10-05 15:25:51 +01:00
app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {
'/metrics': make_wsgi_app()
})
2022-03-10 14:26:22 +00:00
db.init_app(app)
migrate.init_app(app, db, render_as_batch=True)
bootstrap.init_app(app)
app.register_blueprint(portal, url_prefix="/portal")
app.register_blueprint(tfstate, url_prefix="/tfstate")
2022-03-10 14:26:22 +00:00
2022-10-05 15:25:51 +01:00
if sys.argv[1] != "db":
from app.metrics import DefinedProxiesCollector, BlockedProxiesCollector, AutomationCollector
REGISTRY.register(DefinedProxiesCollector())
REGISTRY.register(BlockedProxiesCollector())
REGISTRY.register(AutomationCollector())
2022-10-05 15:25:51 +01:00
2022-03-10 14:26:22 +00:00
@app.route('/')
2022-05-16 11:44:03 +01:00
def index() -> ResponseReturnValue:
2022-03-10 14:26:22 +00:00
return redirect(url_for("portal.portal_home"))
if __name__ == '__main__':
app.run()