def __init__(self, database_url='sqlite:///:memory:', get_submit_args=default_get_submit_args, default_drm='local', default_queue=None, flask_app=None): """ :param str database_url: A `sqlalchemy database url <http://docs.sqlalchemy.org/en/latest/core/engines.html>`_. ex: sqlite:///home/user/sqlite.db or mysql://user:pass@localhost/database_name or postgresql+psycopg2://user:pass@localhost/database_name :param func get_submit_args: a function that returns arguments to be passed to the job submitter, like resource requirements or the queue to submit to. See :func:`cosmos.default_get_submit_args` for details :param Flask flask_app: A Flask application instance for the web interface. The default behavior is to create one. :param str default_drm: The Default DRM to use (ex 'local', 'lsf', or 'ge') """ assert default_drm in ['local', 'lsf', 'ge'], 'unsupported drm: %s' % default_drm assert '://' in database_url, 'Invalid database_url: %s' % database_url if flask_app: self.flask_app = flask_app else: self.flask_app = Flask(__name__) self.flask_app.secret_key = os.urandom(24) self.get_submit_args = get_submit_args self.flask_app.config['SQLALCHEMY_DATABASE_URI'] = database_url self.sqla = SQLAlchemy(self.flask_app) self.session = self.sqla.session self.default_queue = default_queue self.default_drm = default_drm # setup flask views from cosmos.web.views import gen_bprint #from cosmos.web.admin import add_cosmos_admin self.cosmos_bprint = gen_bprint(self) self.flask_app.register_blueprint(self.cosmos_bprint)
def __init__(self, database_url='sqlite:///:memory:', get_submit_args=default_get_submit_args, default_drm='local', default_queue=None, flask_app=None): """ :param str database_url: A `sqlalchemy database url <http://docs.sqlalchemy.org/en/latest/core/engines.html>`_. ex: sqlite:///home/user/sqlite.db or mysql://user:pass@localhost/database_name or postgresql+psycopg2://user:pass@localhost/database_name :param func get_submit_args: a function that returns arguments to be passed to the job submitter, like resource requirements or the queue to submit to. See :func:`cosmos.default_get_submit_args` for details :param Flask flask_app: A Flask application instance for the web interface. The default behavior is to create one. :param str default_drm: The Default DRM to use (ex 'local', 'lsf', or 'ge') """ assert default_drm in ['local', 'lsf', 'ge'], 'unsupported drm: %s' % default_drm assert '://' in database_url, 'Invalid database_url: %s' % database_url self.flask_app = flask_app if flask_app else Flask(__name__) self.get_submit_args = get_submit_args self.flask_app.config['SQLALCHEMY_DATABASE_URI'] = database_url self.sqla = SQLAlchemy(self.flask_app) self.session = self.sqla.session self.default_queue = default_queue self.default_drm = default_drm # setup flask views from cosmos.web.views import gen_bprint #from cosmos.web.admin import add_cosmos_admin self.cosmos_bprint = gen_bprint(self) self.flask_app.register_blueprint(self.cosmos_bprint)
def configure_flask(self): # setup flask views from cosmos.web.views import gen_bprint # from cosmos.web.admin import add_cosmos_admin self.cosmos_bprint = gen_bprint(self) self.flask_app.register_blueprint(self.cosmos_bprint)
def runweb(self, host, port, debug=True): """ Starts the web dashboard """ from cosmos.web.views import gen_bprint self.cosmos_bprint = gen_bprint(self.session) self.flask_app.register_blueprint(self.cosmos_bprint) return self.flask_app.run(debug=debug, host=host, port=port)
def runweb(self, host, port, debug=True): """ Starts the web dashboard :param str host: Host name to bind to. Default is local host, but commonly 0.0.0.0 to allow outside internet traffic. :param int port: Port to bind to. """ from cosmos.web.views import gen_bprint self.cosmos_bprint = gen_bprint(self.session) self.flask_app.register_blueprint(self.cosmos_bprint) return self.flask_app.run(debug=debug, host=host, port=port)
def init_flask(self): from cosmos.web.views import gen_bprint self.cosmos_bprint = gen_bprint(self.session) self.flask_app.register_blueprint(self.cosmos_bprint) return self.flask_app
from flask import Flask, request from cosmos.api import Cosmos flask_app = Flask(__name__) from cosmos.web.views import gen_bprint cosmos_bprint = gen_bprint() flask_app.register_blueprint(cosmos_bprint, url_prefix='/<sqlite_db>/') @cosmos_bprint.url_value_preprocessor def get_profile_owner(endpoint, values): #query = User.query.filter_by(url_slug=values.pop('user_url_slug')) g.sqlite_db = values.pop('sqlite_db', None) @flask_app.before_request def test(): print g.sqlite_db # return self.flask_app.run(debug=debug, host=host, port=port) flask_app.run('0.0.0.0', 2122)