Example #1
0
def create_app(config_name):
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    db.init_app(app)
    mail.init_app(app)
    cors.init_app(app)
    cache.init_app(app)
    jwt.init_app(app)
    redis.init_app(app)
    # rbac.init_app(app)
    fs.init_app(app, *storages.values())

    TaskBase = celery.Task

    class ContextTask(TaskBase):
        abstract = True

        def __call__(self, *args, **kwargs):
            with app.app_context():
                return TaskBase.__call__(self, *args, **kwargs)

    celery.Task = ContextTask
    # celery.conf.update(app.config)

    from .api.v1 import blueprint as api
    app.register_blueprint(api, url_prefix="/api/v1")

    return app
Example #2
0
 def create_app(self):
     app = super(ImageFieldTest, self).create_app()
     self._instance_path = app.instance_path
     app.instance_path = tempfile.mkdtemp()
     fs.init_app(app, storage, tmp)
     app.register_blueprint(blueprint)
     return app
Example #3
0
 def setUp(self):
     super(MongoEngineTestCase, self).setUp()
     self.app.config['MONGODB_SETTINGS'] = {'DB': 'flask_fs_tests'}
     self._instance_path = self.app.instance_path
     self.app.instance_path = tempfile.mkdtemp()
     self.storage = fs.Storage('test', fs.ALL)
     fs.init_app(self.app, self.storage)
     db.init_app(self.app)
     self._ctx = self.app.test_request_context()
     self._ctx.push()
Example #4
0
 def storage(self, app, tmpdir):
     app.instance_path = str(tmpdir)
     storage = fs.Storage('test', fs.ALL)
     fs.init_app(app, storage)
     db.init_app(app)
     yield storage
     with app.test_request_context():
         db_name = app.config['MONGODB_DB']
         try:
             db.connection.client.drop_database(db_name)
         except TypeError:
             db.connection.drop_database(db_name)
Example #5
0
 def storage(self, app, tmpdir):
     app.instance_path = str(tmpdir)
     storage = fs.Storage('test', fs.ALL)
     fs.init_app(app, storage)
     db.init_app(app)
     yield storage
     with app.test_request_context():
         db_name = app.config['MONGODB_DB']
         try:
             db.connection.client.drop_database(db_name)
         except TypeError:
             db.connection.drop_database(db_name)
Example #6
0
def portolano():
    class Configuration(metaclass=MetaFlaskEnv):
        DEBUG = False
        PORT = 5000
        FLASK_FS_OVERWRITE = False

        # Flask fs shared configuration
        FS_LOCAL_ROOT = os.getcwd()  # The file system root

        FS_S3_ENDPOINT = None  # The S3 API endpoint
        FS_S3_REGION = None  # The region to work on.
        FS_S3_ACCESS_KEY = None  # The AWS credential access key
        FS_S3_SECRET_KEY = None  # The AWS credential secret key

        FS_GRIDFS_MONGO_URL = None  # The Mongo access URL
        FS_GRIDFS_MONGO_DB = None  # The database to store the file in.

        FS_SWIFT_AUTHURL = None  # The Swift Auth URL
        FS_SWIFT_USER = None  # The Swift user in
        FS_SWIFT_KEY = None  # The user API Key

        # Back end selection
        CHARTS_FS_BACKEND = 'local'
        CHARTS_FS_URL = "http://127.0.0.1:5000"

    specification_dir = os.path.join(os.path.dirname(__file__), 'api')

    connexion_app = connexion.App(__name__, specification_dir='api/')
    # Connexion initializtion
    connexion_app.add_api('api.yaml', resolver=RestyResolver('portolano.api'))
    app = connexion_app.app

    # Load the configuration from env var
    app.config.from_object(Configuration)

    # Storage initialization
    flask_fs.init_app(app)
    app.config['STORAGE'] = flask_fs.Storage(
        'charts', ('tar', 'tgz'), overwrite=app.config['FLASK_FS_OVERWRITE'])
    app.config['STORAGE'].configure(app)
    return app
Example #7
0
def init_app(app):
    if 'BUCKETS_PREFIX' not in app.config:
        app.config['BUCKETS_PREFIX'] = '/s'
    fs.init_app(
        app, resources, avatars, logos, images, chunks, tmp, references)
Example #8
0
 def configure(self, *storages, **configs):
     import flask_fs as fs
     for key, value in configs.items():
         self.config[key] = value
     fs.init_app(self, *storages)
Example #9
0
def init_app(app):
    if 'BUCKETS_PREFIX' not in app.config:
        app.config['BUCKETS_PREFIX'] = '/s'
    fs.init_app(app, resources, avatars, logos, images, chunks, tmp,
                references)
Example #10
0
if not app.config["FILE_TREE_FOLDER"]:
    # Default file_trees are included in Python package: use root_path
    app.config["FILE_TREE_FOLDER"] = os.path.join(app.root_path, "file_trees")

if not app.config["PREVIEW_FOLDER"]:
    app.config["PREVIEW_FOLDER"] = os.path.join(app.instance_path, "previews")

db = SQLAlchemy(app)
migrate = Migrate(app, db)  # DB schema migration features

app.secret_key = app.config["SECRET_KEY"]
jwt = JWTManager(app)  # JWT auth tokens
Principal(app)  # Permissions
cache.cache.init_app(app)  # Function caching
flask_fs.init_app(app)  # To save files in object storage
mail = Mail()
mail.init_app(app)  # To send emails


@app.teardown_appcontext
def shutdown_session(exception=None):
    db.session.remove()


@app.errorhandler(404)
def page_not_found(error):
    return jsonify(error=True, message=str(error)), 404


@app.errorhandler(WrongIdFormatException)
Example #11
0
 def fs_root(self, instance_path, app):
     app.config['FS_ROOT'] = str(instance_path / 'fs')
     fs.init_app(app, storage, tmp)