powerdns-admin/app/__init__.py

45 lines
1.3 KiB
Python
Raw Normal View History

from werkzeug.contrib.fixers import ProxyFix
2016-08-05 08:20:41 +00:00
from flask import Flask, request, session, redirect, url_for
from flask_login import LoginManager
from flask_sqlalchemy import SQLAlchemy as SA
2018-06-11 03:58:47 +00:00
from flask_migrate import Migrate
2018-08-19 08:29:50 +00:00
from flask_oauthlib.client import OAuth
from sqlalchemy.exc import OperationalError
# subclass SQLAlchemy to enable pool_pre_ping
class SQLAlchemy(SA):
def apply_pool_defaults(self, app, options):
SA.apply_pool_defaults(self, app, options)
options["pool_pre_ping"] = True
2015-12-13 09:34:12 +00:00
from app.assets import assets
2015-12-13 09:34:12 +00:00
app = Flask(__name__)
app.config.from_object('config')
app.wsgi_app = ProxyFix(app.wsgi_app)
assets.init_app(app)
#### CONFIGURE LOGGER ####
from app.lib.log import logger
logging = logger('powerdns-admin', app.config['LOG_LEVEL'], app.config['LOG_FILE']).config()
2015-12-13 09:34:12 +00:00
login_manager = LoginManager()
login_manager.init_app(app)
2018-08-19 08:29:50 +00:00
db = SQLAlchemy(app) # database
migrate = Migrate(app, db) # flask-migrate
oauth = OAuth(app) # oauth
if app.config.get('SAML_ENABLED') and app.config.get('SAML_ENCRYPT'):
from app.lib import certutil
if not certutil.check_certificate():
certutil.create_self_signed_cert()
2018-08-19 08:29:50 +00:00
from app import models
try:
from app import views
except OperationalError:
logging.error("You have not initialized the DB yet or DB migration is running...")