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
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
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