Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
 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
Example #8
0
 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
Example #9
0
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)