{ "info": { "author": "Matus Kosut", "author_email": "matuskosut@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Jujuna\n\n[![Build Status](https://travis-ci.org/huntdatacenter/jujuna.svg?branch=master)](https://travis-ci.org/huntdatacenter/jujuna)\n[![Documentation Status](https://readthedocs.org/projects/jujuna/badge/?version=latest)](https://jujuna.readthedocs.io/en/latest/?badge=latest)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/jujuna.svg)](https://pypi.org/project/jujuna/)\n\nContinuous deployment, upgrade and testing for Juju.\n\nAt [HUNT Cloud](https://www.ntnu.edu/huntgenes/hunt-cloud) we run our scientific services based on OpenStack orchestrated by Juju. Such cloud deployments rely on a large set of collaborative softwares, and upgrades can sometimes cause considerable pain. We are therefore introducing Jujuna - a tool to simplify the validation of Juju-based OpenStack upgrades.\n\nNew to [Juju](https://jujucharms.com/)? Juju is a cool controller and agent based tool from Canonical to easily deploy and manage applications (called Charms) on different clouds and environments (see [how it works](https://jujucharms.com/how-it-works) for more details).\n\n## Installation\n\nEasy to install using:\n\n```\npip3 install jujuna\n```\n\nMay require installation of `libssl-dev` package or equivalent if not present in the system.\n\nRun command `jujuna --help` to get the help menu. You can also check the usage in [the documentation](https://jujuna.readthedocs.io/en/latest/usage.html).\n\n## Usage\n\nRunning Jujuna requires a working deployment of Juju controller. Juju configs `~/.local/share/juju/` have to be present or credentials have to be specified using params.\n\n```\n# Deploy Ceph bundle into ceph model\njujuna deploy openstack/bundle.yaml -m test-cloud -w\n\n# Upgrade apps in ceph model_name\njujuna upgrade -m test-cloud\n\n# Test apps in the model after upgrade\njujuna test tests/openstack-ocata.yaml -t 1800 -m test-cloud\n\n# Destroy apps within a model, without destroying the model\njujuna clean -m test-cloud -w -f -t 1800\n\n```\n\nIf you don't have any bundle or just need to try jujuna with some simple example, you can follow our [example guide](https://jujuna.readthedocs.io/en/latest/examples.html).\n\n## Testing Jujuna\n\nHow to make sure jujuna and your feature works before pushing out new version.\n\nTesting jujuna with python environments:\n```\ntox -e lint\ntox -e py35\ntox -e py36\ntox -e py37\n```\n\nTesting specific feature:\n\n```\npy.test -k test_feature\n```\n\n## Deploy to docker registry:\n\nBuild image:\n\n```\ndocker build -t registry.example.com/group/jujuna:0.2.1 -t registry.example.com/group/jujuna:latest .\n```\n\nPush to registry:\n\n```\ndocker push registry.example.com/group/jujuna\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/huntdatacenter/jujuna", "keywords": "", "license": "Apache 2", "maintainer": "HUNT Data Center", "maintainer_email": "cloud@hunt.ntnu.no", "name": "jujuna", "package_url": "https://pypi.org/project/jujuna/", "platform": "", "project_url": "https://pypi.org/project/jujuna/", "project_urls": { "Homepage": "https://github.com/huntdatacenter/jujuna" }, "release_url": "https://pypi.org/project/jujuna/0.1.6/", "requires_dist": [ "pyyaml (<=4.2,>=3.0)", "async-timeout (==2.0.1)", "juju (>=0.10.2)", "argcomplete", "theblues (>=0.5.1)" ], "requires_python": "", "summary": "Continuous deployment, upgrade and testing for Juju.", "version": "0.1.6" }, "last_serial": 5208261, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fe0b62691c8663f7ed8d86f0f73851d1", "sha256": "024014369f94baa892702f4d7f238c8387a6449fbc75db9a51d3103ab4dff4ff" }, "downloads": -1, "filename": "jujuna-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fe0b62691c8663f7ed8d86f0f73851d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24197, "upload_time": "2018-10-30T07:57:15", "url": "https://files.pythonhosted.org/packages/1a/66/100d83e8a5201871b027fff7591ca35174670d1e3a83f3c1701d618c31c0/jujuna-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce3c918b579964523a9acdf5e82f9220", "sha256": "910dae709dc067985d9d518f56c0c6609d15f11048fa2422a05d267ed3a6f406" }, "downloads": -1, "filename": "jujuna-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ce3c918b579964523a9acdf5e82f9220", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15100, "upload_time": "2018-10-30T07:57:16", "url": "https://files.pythonhosted.org/packages/f2/61/10fc4fb0657b1f19e65a4c06650c258b5390268e124e60514af5f591a299/jujuna-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dd1d0698124197e652b9a4e9ef80bb1c", "sha256": "f58bffdfb26341f5aa87b3a572be4a31eeaaa26398eb87d5b41b9b40da68a72d" }, "downloads": -1, "filename": "jujuna-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dd1d0698124197e652b9a4e9ef80bb1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24369, "upload_time": "2018-10-30T10:01:18", "url": "https://files.pythonhosted.org/packages/58/7e/550cf91b65368e2b365e4728d2ffeef1caa5aba2357987130d5ce0a9e074/jujuna-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cd00e683b492a544d44893da4968e75", "sha256": "76f6fa4254587fb10406bd2ad3ef6aa38c0b42638f78c1edda941a16d3da2066" }, "downloads": -1, "filename": "jujuna-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7cd00e683b492a544d44893da4968e75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15216, "upload_time": "2018-10-30T10:01:20", "url": "https://files.pythonhosted.org/packages/70/6f/9a23f8a2217d59aa84fd325669c1dd311ffbc566ff72d4554ad34e0224d5/jujuna-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "525f8f1a1af9d4ac8e70f0a1255c4065", "sha256": "bdb687aca33fe44f947edd934aaf59f497b63f73f73852a78c95290dfb70dd4b" }, "downloads": -1, "filename": "jujuna-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "525f8f1a1af9d4ac8e70f0a1255c4065", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24371, "upload_time": "2018-11-07T12:08:29", "url": "https://files.pythonhosted.org/packages/55/f4/866d877b5495454c997a2d07bd015332e456b4c99529099645c6b39ce251/jujuna-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50783178f95dad3f699e3efeb577f4ce", "sha256": "b040bba12c249faeca4ca2c3e2491f3a8447aad06e53103817df0e403a7d640c" }, "downloads": -1, "filename": "jujuna-0.1.2.tar.gz", "has_sig": false, "md5_digest": "50783178f95dad3f699e3efeb577f4ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15206, "upload_time": "2018-11-07T12:08:30", "url": "https://files.pythonhosted.org/packages/fe/a7/5685bd73823ea785b1e662a50a2b0205d1742837ee29088c5c05f4727840/jujuna-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "84cb6f19c7d0377514a4593a19c9f602", "sha256": "d6630594cc69d2119ca2c29a03a552b029cb6ab233965b963d8ceae5e1c16b3e" }, "downloads": -1, "filename": "jujuna-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "84cb6f19c7d0377514a4593a19c9f602", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24374, "upload_time": "2018-11-07T12:15:54", "url": "https://files.pythonhosted.org/packages/bc/61/0d51d6dbacf660556a1fcd32db04a80c817e46fe5fdb89e34626f701c116/jujuna-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a59fe9b94e7954cbf8f94a45376febed", "sha256": "abae6fe22626cfb6771967db2c4db55e27ed66acc89bbf733135d59e8d5ea88a" }, "downloads": -1, "filename": "jujuna-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a59fe9b94e7954cbf8f94a45376febed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15216, "upload_time": "2018-11-07T12:15:56", "url": "https://files.pythonhosted.org/packages/48/bf/4bb8a5fce856d51b3240247c9b2fc0e6a1bd9ae9724bb7cc168078459a6a/jujuna-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "08d7123c42292f3fa5327f7bf200fdb1", "sha256": "ffd8d8a2a2e8af51222f1dcede54a297a9c18e589af7ba7ee9a7aa4c13075cbb" }, "downloads": -1, "filename": "jujuna-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "08d7123c42292f3fa5327f7bf200fdb1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24564, "upload_time": "2019-01-14T10:05:25", "url": "https://files.pythonhosted.org/packages/a6/e0/1c7e37a85ef7324b449cf491cb328bc4cfe2c1a0a3326a51adab6c6673a2/jujuna-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af1980454149e26b16219ff4ab258c98", "sha256": "42ddcd5e9d275ebe26b39a57bcadb921088151564a53b315cd866a402ec3f66f" }, "downloads": -1, "filename": "jujuna-0.1.4.tar.gz", "has_sig": false, "md5_digest": "af1980454149e26b16219ff4ab258c98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15426, "upload_time": "2019-01-14T10:05:27", "url": "https://files.pythonhosted.org/packages/c0/aa/31e064073eebefe38335783c201b4c31b1796dec567215b8401e0072ffeb/jujuna-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "68578569a44c4eee01b277e9618ca37f", "sha256": "367cf2bca6f1a97edf581424bbf96ca39d23cecd48513d0877e9b158041ac074" }, "downloads": -1, "filename": "jujuna-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "68578569a44c4eee01b277e9618ca37f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24764, "upload_time": "2019-01-29T08:57:02", "url": "https://files.pythonhosted.org/packages/3b/7a/f69098c63eba4807ed010ad99092fa6b1eef85e607ecef4e2f66f50ab620/jujuna-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1cbb0eadfbef5527fa055db127fa2148", "sha256": "7dc68c3c755379fe54ffa888c53269e14803fe9ae36adcd2dcb6809c36555d22" }, "downloads": -1, "filename": "jujuna-0.1.5.tar.gz", "has_sig": false, "md5_digest": "1cbb0eadfbef5527fa055db127fa2148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15596, "upload_time": "2019-01-29T08:57:04", "url": "https://files.pythonhosted.org/packages/cf/0e/d15da291e90372b43ad10196cac0c6054c34602e6d5a23505acc03d20fa3/jujuna-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e6dff204f3afd925966523504ee8b871", "sha256": "d27de3f617405e40cdf050598d3fc000840c47955e0eb66aa19190ff22c13f56" }, "downloads": -1, "filename": "jujuna-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e6dff204f3afd925966523504ee8b871", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28919, "upload_time": "2019-04-30T13:39:35", "url": "https://files.pythonhosted.org/packages/1f/e6/2c83ed2afa1af86931d65a78a06111f1841bd21196772a24e52de07be254/jujuna-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a6c96a0e7949357976d2fa37855020f", "sha256": "f6d8078cecb62cbc365f0af43060063848201781cf7deb43b0528ba9563e0fbf" }, "downloads": -1, "filename": "jujuna-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4a6c96a0e7949357976d2fa37855020f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17295, "upload_time": "2019-04-30T13:39:37", "url": "https://files.pythonhosted.org/packages/74/c6/3166f3d51f9f79f458eaecd5d8281278096a7a86dac22e0abdca41b0d774/jujuna-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e6dff204f3afd925966523504ee8b871", "sha256": "d27de3f617405e40cdf050598d3fc000840c47955e0eb66aa19190ff22c13f56" }, "downloads": -1, "filename": "jujuna-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e6dff204f3afd925966523504ee8b871", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28919, "upload_time": "2019-04-30T13:39:35", "url": "https://files.pythonhosted.org/packages/1f/e6/2c83ed2afa1af86931d65a78a06111f1841bd21196772a24e52de07be254/jujuna-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a6c96a0e7949357976d2fa37855020f", "sha256": "f6d8078cecb62cbc365f0af43060063848201781cf7deb43b0528ba9563e0fbf" }, "downloads": -1, "filename": "jujuna-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4a6c96a0e7949357976d2fa37855020f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17295, "upload_time": "2019-04-30T13:39:37", "url": "https://files.pythonhosted.org/packages/74/c6/3166f3d51f9f79f458eaecd5d8281278096a7a86dac22e0abdca41b0d774/jujuna-0.1.6.tar.gz" } ] }