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 build_app(service, refresh_interval=PERIODIC_REFRESH_DELAY): """Builds and returns a web app that exposes DDL and ERD. Arguments: service - Base URL of the data models service to use. refresh_interval - Number of seconds between refreshes of model summaries. To disable periodic refreshes, set to None. """ # noqa app.config['service'] = service app.config['dialects'] = get_template_dialects() # Cache the data models from the data models service # and refresh periodically. refresh_data_models_template_and_reschedule(delay=refresh_interval) return app
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/' % (m['name'], v['name'], d['name'])) ENDPOINTS.append('%s/%s/drop/%s/' % (m['name'], v['name'], d['name'])) ENDPOINTS.append('%s/%s/delete/%s/' % (m['name'], v['name'], d['name'])) for e in ['tables', 'constraints', 'indexes']: if not (d['name'] == 'sqlite' and e == 'constraints'): ENDPOINTS.append('%s/%s/ddl/%s/%s/' % (m['name'], v['name'], d['name'], e)) ENDPOINTS.append('%s/%s/drop/%s/%s/' % (m['name'], v['name'], d['name'], e))
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/' % (m['name'], v['name'], d['name'])) ENDPOINTS.append('%s/%s/drop/%s/' % (m['name'], v['name'], d['name'])) ENDPOINTS.append('%s/%s/delete/%s/' % (m['name'], v['name'], d['name'])) for e in ['tables', 'constraints', 'indexes']: if not (d['name'] == 'sqlite' and e == 'constraints'): ENDPOINTS.append('%s/%s/ddl/%s/%s/' % (m['name'], v['name'], d['name'], e)) ENDPOINTS.append('%s/%s/drop/%s/%s/' % (m['name'], v['name'], d['name'], e))