def do_set_backends(settings): logger.debug('Setting storage backends') set_up_storage( website.models.MODELS, storage.MongoStorage, addons=settings.ADDONS_AVAILABLE, )
def do_set_backends(settings): logger.debug('Setting storage backends') maintenance.ensure_maintenance_collection() set_up_storage( website.models.MODELS, storage.MongoStorage, addons=settings.ADDONS_AVAILABLE, )
def init_app(settings_module='website.settings', set_backends=True, routes=True, mfr=False, attach_request_handlers=True): """Initializes the OSF. A sort of pseudo-app factory that allows you to bind settings, set up routing, and set storage backends, but only acts on a single app instance (rather than creating multiple instances). :param settings_module: A string, the settings module to use. :param set_backends: Whether to set the database storage backends. :param routes: Whether to set the url map. """ # The settings module settings = importlib.import_module(settings_module) build_log_templates(settings) init_addons(settings, routes) build_js_config_files(settings) app.debug = settings.DEBUG_MODE if mfr: init_mfr(app) if set_backends: logger.debug('Setting storage backends') set_up_storage( website.models.MODELS, storage.MongoStorage, addons=settings.ADDONS_AVAILABLE, ) if routes: try: make_url_map(app) except AssertionError: # Route map has already been created pass if attach_request_handlers: attach_handlers(app, settings) if app.debug: logger.info("Sentry disabled; Flask's debug mode enabled") else: sentry.init_app(app) logger.info("Sentry enabled; Flask's debug mode disabled") if set_backends: ensure_schemas() apply_middlewares(app, settings) return app