{ "info": { "author": "Stefan Verhoeven", "author_email": "s.verhoeven@esciencecenter.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# experiment-launcher\n\n[![Build Status](https://travis-ci.org/eWaterCycle/experiment-launcher.svg?branch=master)](https://travis-ci.org/eWaterCycle/experiment-launcher)\n[![SonarCloud quality gate](https://sonarcloud.io/api/project_badges/measure?project=experiment-launcher&metric=alert_status)](https://sonarcloud.io/dashboard?id=experiment-launcher)\n[![SonarCloud coverage](https://sonarcloud.io/api/project_badges/measure?project=experiment-launcher&metric=coverage)](https://sonarcloud.io/component_measures?id=experiment-launcher&metric=coverage)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1453264.svg)](https://doi.org/10.5281/zenodo.1453264)\n\neWaterCycle Experiment Launcher a webservice to generate and launch a Jupyter notebook.\n\nThe 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)\n\n# Install\n\n## JupyterHub server\n\nThe experiment launcher needs to communicate with a Jupyter Hub server.\nThe JupyterHub server must running with a service which has a known token and has admin rights.\n\n```bash\npip install jupyterhub dockerspawner\nsudo npm install -g configurable-http-proxy\ncp jupyterhub_config.py.example jupyterhub_config.py\n# Generate token\nexport JUPYTERHUB_TOKEN=$(openssl rand -hex 32)\necho $JUPYTERHUB_TOKEN\n# Set token\nnano jupyterhub_config.py\ndocker pull ewatercycle/jupyterlab-experiment-builder\njupyterhub\n```\n\nTest JupyterHub by going to http://172.17.0.1:8000 and login with OS credentials.\n\n## Installation for production\n\n```bash\npip install ewatercycle_experiment_launcher\n```\n\n## Installation for development\n\nTo install the launcher in development mode clone the repo and run\n\n```bash\npython setup.py develop\n```\n\n# Run\n\n```bash\n# JUPYTERHUB_TOKEN env var should be set to same value as token in jupyterhub_config.py\nexport JUPYTERHUB_URL=http://172.17.0.1:8000\ngunicorn -w 4 -b 0.0.0.0:8888 ewatercycle_experiment_launcher.serve:app\n```\n\nGoto http://localhost:8888/ui/ for Swagger UI.\n\nThe JupyterHub and Experiment Launcher use local OS accounts for authentication and authorization.\n\nIn the Swagger UI you must authorize before trying an operation.\n\nWhen running on Internet make sure https is enforced so the authentication is secure.\n\n\n\n# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)\nand this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [0.2.0] - 2018-12-06\n\n### Fixed\n\n* workspace is already in use in another JupyterLab window (#11)\n\n### Changed\n\n* Upgraded to Connexion v2\n* Upgraded to OpenAPI v3\n\n## [0.1.0] - 2018-10-09\n\nInitial release\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ewatercycle/ewatercycle_experiment_launcher", "keywords": "ewatercycle_experiment_launcher", "license": "Apache Software License 2.0", "maintainer": "", "maintainer_email": "", "name": "ewatercycle-experiment-launcher", "package_url": "https://pypi.org/project/ewatercycle-experiment-launcher/", "platform": "", "project_url": "https://pypi.org/project/ewatercycle-experiment-launcher/", "project_urls": { "Homepage": "https://github.com/ewatercycle/ewatercycle_experiment_launcher" }, "release_url": "https://pypi.org/project/ewatercycle-experiment-launcher/0.2.0/", "requires_dist": [ "nbformat", "requests", "connexion[swagger-ui]", "connexion", "gunicorn", "decorator", "simplepam", "flask-cors", "jsonschema (==2.6.0)" ], "requires_python": "", "summary": "Webservice to generate and launch a Jupyter notebook", "version": "0.2.0" }, "last_serial": 4698732, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "c61aa2be55985e9d96693b9a871081a6", "sha256": "5b1693d9ba614e8d9456f3c4335a8414e02c7703077dbf21c4126a84bad254de" }, "downloads": -1, "filename": "ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c61aa2be55985e9d96693b9a871081a6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14254, "upload_time": "2018-12-06T16:11:45", "url": "https://files.pythonhosted.org/packages/17/fe/cc803936a7b8d6968525579e27e4e3ef54894d35f61b1d92ad73ba42ed40/ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c019f0bd52fbdea2ad65ed9a0a4ec6d", "sha256": "8a330a0c25c7e380158f917e40eaef585e588427e4b4984d784f7ae8708b2fa6" }, "downloads": -1, "filename": "ewatercycle_experiment_launcher-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9c019f0bd52fbdea2ad65ed9a0a4ec6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15575, "upload_time": "2018-12-06T16:11:47", "url": "https://files.pythonhosted.org/packages/97/69/d9a19301a6980b081fd6d33506f65d34b911c43687bb59e9e577eeb8c586/ewatercycle_experiment_launcher-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c61aa2be55985e9d96693b9a871081a6", "sha256": "5b1693d9ba614e8d9456f3c4335a8414e02c7703077dbf21c4126a84bad254de" }, "downloads": -1, "filename": "ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c61aa2be55985e9d96693b9a871081a6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14254, "upload_time": "2018-12-06T16:11:45", "url": "https://files.pythonhosted.org/packages/17/fe/cc803936a7b8d6968525579e27e4e3ef54894d35f61b1d92ad73ba42ed40/ewatercycle_experiment_launcher-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c019f0bd52fbdea2ad65ed9a0a4ec6d", "sha256": "8a330a0c25c7e380158f917e40eaef585e588427e4b4984d784f7ae8708b2fa6" }, "downloads": -1, "filename": "ewatercycle_experiment_launcher-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9c019f0bd52fbdea2ad65ed9a0a4ec6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15575, "upload_time": "2018-12-06T16:11:47", "url": "https://files.pythonhosted.org/packages/97/69/d9a19301a6980b081fd6d33506f65d34b911c43687bb59e9e577eeb8c586/ewatercycle_experiment_launcher-0.2.0.tar.gz" } ] }