def create_connexion_app():
    openapi_args = {
        "path_prefix": config.path_prefix,
        "app_name": app_config.get_app_name(),
    }
    connexion_app = connexion.App(
        __name__, specification_dir="openapi/", arguments=openapi_args
    )
    connexion_app.add_api(
        "api.spec.yaml", strict_validation=True, validate_responses=True
    )
    connexion_app.add_api("mgmt_api.spec.yaml", strict_validation=True)
    flask_app = connexion_app.app

    # set up logging ASAP
    gunicorn_logger = logging.getLogger("gunicorn.error")
    flask_app.logger.handlers = gunicorn_logger.handlers
    flask_app.logger.setLevel(gunicorn_logger.level)
    setup_cw_logging(flask_app.logger)

    # set up DB
    flask_app.config["SQLALCHEMY_ECHO"] = False
    flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
    flask_app.config["SQLALCHEMY_DATABASE_URI"] = db_config.db_uri
    flask_app.config["SQLALCHEMY_POOL_SIZE"] = db_config.db_pool_size
    flask_app.config["SQLALCHEMY_POOL_TIMEOUT"] = db_config.db_pool_timeout
    db.init_app(flask_app)

    flask_app.register_blueprint(v0.section)
    flask_app.register_error_handler(HTTPError, handle_http_error)
    return connexion_app
Exemple #2
0
def ensure_entitled():
    return view_helpers.ensure_entitled(request, app_config.get_app_name(),
                                        current_app.logger)