示例#1
0
文件: main.py 项目: Frostman/savanna
def make_app():
    """App builder (wsgi)

    Entry point for Savanna REST API server
    """
    app = Flask('savanna.api')

    @app.route('/', methods=['GET'])
    def version_list():
        return render({
            "versions": [
                {"id": "v0.2", "status": "CURRENT"}
            ]
        })

    app.register_blueprint(api_v02.rest, url_prefix='/v0.2')

    setup_storage(app)
    setup_scheduler(app)

    def make_json_error(ex):
        status_code = (ex.code
                       if isinstance(ex, HTTPException)
                       else 500)
        description = (ex.description
                       if isinstance(ex, HTTPException)
                       else str(ex))
        return render({'error': status_code, 'error_message': description},
                      status=status_code)

    for code in default_exceptions.iterkeys():
        app.error_handler_spec[None][code] = make_json_error

    app.wsgi_app = auth_valid(app.config)(app.wsgi_app)

    app.wsgi_app = auth_token(
        app.config,
        auth_host=CONF.os_auth_host,
        auth_port=CONF.os_auth_port,
        auth_protocol=CONF.os_auth_protocol,
        admin_user=CONF.os_admin_username,
        admin_password=CONF.os_admin_password,
        admin_tenant=CONF.os_admin_tenant_name
    )(app.wsgi_app)

    return app
示例#2
0
文件: main.py 项目: ddutta/savanna
def make_app():
    """
    Entry point for Savanna REST API server
    """
    app = Flask('savanna.api')

    app.config['SQLALCHEMY_DATABASE_URI'] = CONF.sqlalchemy.database_uri
    app.config['SQLALCHEMY_ECHO'] = CONF.sqlalchemy.echo

    app.register_blueprint(api_v02.rest, url_prefix='/v0.2')

    setup_storage(app)
    setup_defaults()
    setup_scheduler(app)

    def make_json_error(ex):
        status_code = (ex.code
                       if isinstance(ex, HTTPException)
                       else 500)
        description = (ex.description
                       if isinstance(ex, HTTPException)
                       else str(ex))
        return render({'error': status_code, 'error_message': description},
                      status=status_code)

    for code in default_exceptions.iterkeys():
        app.error_handler_spec[None][code] = make_json_error

    app.wsgi_app = auth_valid(app.config)(app.wsgi_app)

    app.wsgi_app = auth_token(
        app.config,
        auth_host=CONF.os_auth_host,
        auth_port=CONF.os_auth_port,
        auth_protocol=CONF.os_auth_protocol,
        admin_user=CONF.os_admin_username,
        admin_password=CONF.os_admin_password,
        admin_tenant=CONF.os_admin_tenant_name
    )(app.wsgi_app)

    return app
示例#3
0
文件: main.py 项目: akshayms/eho
def make_app(**local_conf):
    """
    Entry point for Elastic Hadoop on OpenStack REST API server
    """
    app = Flask('eho.api')

    # reading defaults
    app.config.from_pyfile('etc/default.cfg', silent=True)
    app.config.from_pyfile('../etc/default.cfg', silent=True)

    # read local conf
    app.config.from_pyfile('etc/local.cfg', silent=True)
    app.config.from_pyfile('../etc/local.cfg', silent=True)

    app.config.from_envvar('EHO_API_CFG', silent=True)
    app.config.update(**local_conf)

    root_logger = logging.getLogger()
    ll = app.config.pop('LOG_LEVEL', 'WARN')
    if ll:
        root_logger.setLevel(ll)

    app.register_blueprint(api_v02.rest, url_prefix='/v0.2')

    if app.config['DEBUG']:
        print 'Configuration:'
        for k in app.config:
            print '\t%s = %s' % (k, app.config[k])

    setup_storage(app)
    setup_defaults(app)
    setup_scheduler(app)
    setup_ops(app)
    setup_api(app)

    def make_json_error(ex):
        status_code = (ex.code
                       if isinstance(ex, HTTPException)
                       else 500)
        description = (ex.description
                       if isinstance(ex, HTTPException)
                       else str(ex))
        return render({'error': status_code, 'error_message': description},
                      status=status_code)

    for code in default_exceptions.iterkeys():
        app.error_handler_spec[None][code] = make_json_error

    app.wsgi_app = auth_valid(app.config)(app.wsgi_app)

    app.wsgi_app = auth_token(
        app.config,
        auth_host=app.config['OS_AUTH_HOST'],
        auth_port=app.config['OS_AUTH_PORT'],
        auth_protocol=app.config['OS_AUTH_PROTOCOL'],
        admin_user=app.config['OS_ADMIN_USER'],
        admin_password=app.config['OS_ADMIN_PASSWORD'],
        admin_tenant=['OS_ADMIN_TENANT']
    )(app.wsgi_app)

    return app