def model_route(model_name):

    for model in get_template_models(app.config['service']):
        if model['name'] == model_name:
            break
    else:
        abort(404)

    return render_template('model.html', model=model)
Ejemplo n.º 2
0
def build_app(service):
    """Builds and returns a web app that exposes DDL and ERD.

    Arguments:
      service  Base URL of the data models service to use.
    """  # noqa

    app.config['service'] = service
    app.config['service_version'] = get_service_version(service)
    app.config['models'] = get_template_models(service)
    app.config['dialects'] = get_template_dialects()

    return app
def version_route(model_name, version_name):

    for model in get_template_models(app.config['service']):
        if model['name'] == model_name:
            break
    else:
        abort(404)

    for version in model['versions']:
        if version['name'] == version_name:
            break
    else:
        abort(404)

    return render_template('version.html',
                           model=model,
                           version=version,
                           dialects=app.config['dialects'])
Ejemplo n.º 4
0
                              version='auto')

try:
    containers = docker_client.containers(filters={'status': 'running'})
except ConnectionError:
    containers = []
    raise SkipTest('Docker daemon socket not found.')

for container in containers:
    if 'dbhi/data-models-sqlalchemy' in container['Image']:
        DMSA_AVAILABLE = True

ENDPOINTS = ['']

for m in get_template_models(
        os.environ.get('DMSA_TEST_SERVICE')
        or 'https://data-models-service.research.chop.edu/'):

    ENDPOINTS.append('%s/' % m['name'])

    for v in m['versions']:

        ENDPOINTS.append('%s/%s/' % (m['name'], v['name']))
        ENDPOINTS.append('%s/%s/erd/' % (m['name'], v['name']))

        ENDPOINTS.append('%s/%s/logging/oracle/' % (m['name'], v['name']))
        ENDPOINTS.append('%s/%s/nologging/oracle/' % (m['name'], v['name']))

        for d in get_template_dialects():

            ENDPOINTS.append('%s/%s/ddl/%s/' %
def index_route():
    return render_template('index.html',
                           models=get_template_models(app.config['service']))
def refresh_data_models_template():
    """Retrieve the data models from the service and cache them"""
    get_template_models(app.config['service'], force_refresh=True)
Ejemplo n.º 7
0
import os
from nose.tools import eq_
from dmsa import service
from dmsa.utility import get_template_models

SERVICE = os.environ.get('DMSA_TEST_SERVICE',
                         'https://data-models-service.research.chop.edu/')

app = service.build_app(SERVICE, refresh_interval=None)
app.config['TESTING'] = True
test_app = app.test_client()

ENDPOINTS = ['/']

for m in get_template_models(SERVICE):

    ENDPOINTS.append('/%s/' % m['name'])

    for v in m['versions']:

        ENDPOINTS.append('/%s/%s/' % (m['name'], v['name']))
        ENDPOINTS.append('/%s/%s/erd/' % (m['name'], v['name']))

        ENDPOINTS.append('/%s/%s/ddl/sqlite/' %
                         (m['name'], v['name']))
        ENDPOINTS.append('/%s/%s/drop/sqlite/' %
                         (m['name'], v['name']))
        ENDPOINTS.append('/%s/%s/delete/sqlite/' %
                         (m['name'], v['name']))

        for e in ['tables', 'indexes']:
docker_client = docker.Client(base_url='unix://var/run/docker.sock',
                              version='auto')

try:
    containers = docker_client.containers(filters={'status': 'running'})
except ConnectionError:
    containers = []
    raise SkipTest('Docker daemon socket not found.')

for container in containers:
    if 'dbhi/data-models-sqlalchemy' in container['Image']:
        DMSA_AVAILABLE = True

ENDPOINTS = ['']

for m in get_template_models(os.environ.get('DMSA_TEST_SERVICE') or
                             'https://data-models-service.research.chop.edu/'):

    ENDPOINTS.append('%s/' % m['name'])

    for v in m['versions']:

        ENDPOINTS.append('%s/%s/' % (m['name'], v['name']))
        ENDPOINTS.append('%s/%s/erd/' % (m['name'], v['name']))

        ENDPOINTS.append('%s/%s/logging/oracle/' %
                         (m['name'], v['name']))
        ENDPOINTS.append('%s/%s/nologging/oracle/' %
                         (m['name'], v['name']))

        for d in get_template_dialects():
import os
from nose.tools import eq_
from dmsa import service
from dmsa.utility import get_template_models

SERVICE = os.environ.get("DMSA_TEST_SERVICE", "https://data-models-service.research.chop.edu/")

app = service.build_app(SERVICE)
app.config["TESTING"] = True
test_app = app.test_client()

ENDPOINTS = ["/"]

for m in get_template_models(SERVICE):

    ENDPOINTS.append("/%s/" % m["name"])

    for v in m["versions"]:

        ENDPOINTS.append("/%s/%s/" % (m["name"], v["name"]))
        ENDPOINTS.append("/%s/%s/erd/" % (m["name"], v["name"]))

        ENDPOINTS.append("/%s/%s/ddl/sqlite/" % (m["name"], v["name"]))
        ENDPOINTS.append("/%s/%s/drop/sqlite/" % (m["name"], v["name"]))
        ENDPOINTS.append("/%s/%s/delete/sqlite/" % (m["name"], v["name"]))

        for e in ["tables", "indexes"]:

            ENDPOINTS.append("/%s/%s/ddl/sqlite/%s/" % (m["name"], v["name"], e))
            ENDPOINTS.append("/%s/%s/drop/sqlite/%s/" % (m["name"], v["name"], e))
Ejemplo n.º 10
0
def test_model_creation():
    for m in get_template_models(SERVICE):
        for v in m['versions']:
            yield check_model_creation, m['name'], v['name'], SERVICE