Webservice to generate and launch a Jupyter notebook
Project description
# experiment-launcher
[![Build Status](https://travis-ci.org/eWaterCycle/experiment-launcher.svg?branch=master)](https://travis-ci.org/eWaterCycle/experiment-launcher) [![SonarCloud quality gate](https://sonarcloud.io/api/project_badges/measure?project=experiment-launcher&metric=alert_status)](https://sonarcloud.io/dashboard?id=experiment-launcher) [![SonarCloud coverage](https://sonarcloud.io/api/project_badges/measure?project=experiment-launcher&metric=coverage)](https://sonarcloud.io/component_measures?id=experiment-launcher&metric=coverage) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1453264.svg)](https://doi.org/10.5281/zenodo.1453264)
eWaterCycle Experiment Launcher a webservice to generate and launch a Jupyter notebook.
The API of the webservice is described in OpenAPI specification at [openapi.yaml](https://github.com/eWaterCycle/experiment-launcher/blob/master/ewatercycle_experiment_launcher/swagger.yaml) and can be seen in [Swagger UI](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/eWaterCycle/experiment-launcher/master/ewatercycle_experiment_launcher/openapi.yaml)
# Install
## JupyterHub server
The experiment launcher needs to communicate with a Jupyter Hub server. The JupyterHub server must running with a service which has a known token and has admin rights.
`bash pip install jupyterhub dockerspawner sudo npm install -g configurable-http-proxy cp jupyterhub_config.py.example jupyterhub_config.py # Generate token export JUPYTERHUB_TOKEN=$(openssl rand -hex 32) echo $JUPYTERHUB_TOKEN # Set token nano jupyterhub_config.py docker pull ewatercycle/jupyterlab-experiment-builder jupyterhub `
Test JupyterHub by going to http://172.17.0.1:8000 and login with OS credentials.
## Installation for production
`bash pip install ewatercycle_experiment_launcher `
## Installation for development
To install the launcher in development mode clone the repo and run
`bash python setup.py develop `
# Run
`bash # JUPYTERHUB_TOKEN env var should be set to same value as token in jupyterhub_config.py export JUPYTERHUB_URL=http://172.17.0.1:8000 gunicorn -w 4 -b 0.0.0.0:8888 ewatercycle_experiment_launcher.serve:app `
Goto http://localhost:8888/ui/ for Swagger UI.
The JupyterHub and Experiment Launcher use local OS accounts for authentication and authorization.
In the Swagger UI you must authorize before trying an operation.
When running on Internet make sure https is enforced so the authentication is secure.
# Changelog All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.2.0] - 2018-12-06
### Fixed
workspace is already in use in another JupyterLab window (#11)
### Changed
Upgraded to Connexion v2
Upgraded to OpenAPI v3
## [0.1.0] - 2018-10-09
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ewatercycle_experiment_launcher-0.2.0.tar.gz
.
File metadata
- Download URL: ewatercycle_experiment_launcher-0.2.0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.10.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a330a0c25c7e380158f917e40eaef585e588427e4b4984d784f7ae8708b2fa6 |
|
MD5 | 9c019f0bd52fbdea2ad65ed9a0a4ec6d |
|
BLAKE2b-256 | 9769d9a19301a6980b081fd6d33506f65d34b911c43687bb59e9e577eeb8c586 |
Provenance
File details
Details for the file ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.10.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b1693d9ba614e8d9456f3c4335a8414e02c7703077dbf21c4126a84bad254de |
|
MD5 | c61aa2be55985e9d96693b9a871081a6 |
|
BLAKE2b-256 | 17fecc803936a7b8d6968525579e27e4e3ef54894d35f61b1d92ad73ba42ed40 |