{ "info": { "author": "ChaosIQ", "author_email": "contact@chaosiq.io", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: Freely Distributable", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython" ], "description": "# ChaosIQ extension for the Chaos Toolkit\n\n[![Build Status](https://travis-ci.com/chaosiq/chaosiq-cloud.svg?branch=master)](https://travis-ci.com/chaosiq/chaosiq-cloud)\n[![Python versions](https://img.shields.io/pypi/pyversions/chaosiq-cloud.svg)](https://www.python.org/)\n[![Has wheel](https://img.shields.io/pypi/wheel/chaosiq-cloud.svg)](http://pythonwheels.com/)\n\nThis is the ChaosIQ extension package for the [Chaos Toolkit][chaostoolkit].\n\n[chaostoolkit]: https://chaostoolkit.org\n\n## Purpose\n\nThe purpose of this package is to communicate with [ChaosIQ][chaosiq] in\norder to:\n\n* Publish experiments\n* Publish executions of these experiments\n* Safely guard the execution via a set of controls\n\n[chaosiq]: https://chaosiq.io\n\n## Install\n\nInstall this package as any other Python packages:\n\n```\n$ pip install -U chaosiq-cloud\n```\n\n## Usage\n\nOnce installed, `signin`, `org`, `publish`, `enable` and `disable` will be added\nto the `chaos` command.\n\n```console\n$ chaos\nUsage: chaos [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --version Show the version and exit.\n --verbose Display debug level traces.\n --no-version-check Do not search for an updated version of the\n chaostoolkit.\n --change-dir TEXT Change directory before running experiment.\n --no-log-file Disable logging to file entirely.\n --log-file TEXT File path where to write the command's log.\n [default: chaostoolkit.log]\n --log-format [string|json] Console logging format: string, json.\n --settings TEXT Path to the settings file. [default:\n ~/.chaostoolkit/settings.yaml]\n --help Show this message and exit.\n\nCommands:\n disable Disable a ChaosIQ feature\n discover Discover capabilities and experiments.\n enable Enable a ChaosIQ feature\n info Display information about the Chaos Toolkit environment.\n init Initialize a new experiment from discovered capabilities.\n org Set ChaosIQ organisation\n publish Publish your experiment's journal to ChaosIQ\n run Run the experiment loaded from SOURCE, either a local file or a...\n signin Sign-in with your ChaosIQ credentials\n validate Validate the experiment at PATH.\n```\n\n### Sign-in with ChaosIQ\n\nIn order to work, you first need to authenticate with your account on\n[ChaosIQ][chaosiq]. First, go there and generate a new token. Copy that\ntoken and paste it when asked from the next command:\n\n\n```console\n$ chaos signin\nChaosIQ url [https://console.chaosiq.io]: \nChaosIQ token: \nHere are your known organizations:\n1) yourorg\n2) TeamA\n3) TeamB\nDefault organization to publish to: 2\nExperiments and executions will be published to organization 'TeamA'\nChaosIQ details saved at ~/.chaostoolkit/settings.yaml\n```\n\nThis is now ready to be used.\n\n### Change ChaosIQ Organization\n\n[ChaosIQ][chaosiq] has support for multiple organizations. You can \nspecify which of the organizations that you want the ChaosIQ extension to use\nby executing the `org` command:\n\n```console\n$ chaos org\nHere are your known organizations:\n1) yourorg\n2) TeamA\n3) TeamB\nDefault organization to publish to: 3\nExperiments and executions will be published to organization 'TeamB'\nChaosIQ details saved at ~/.chaostoolkit/settings.yaml\n```\n\nThis is now ready to be used.\n\n### Publish experiments and executions as you run\n\nOnce this extension is installed, it starts transmitting the experiments\nand their executions to the [ChaosIQ][chaosiq] in your selected organization.\n\n```console\n$ chaos run test.json\n[2019-09-25 14:42:34 INFO] Validating the experiment's syntax\n[2019-09-25 14:42:34 INFO] Experiment looks valid\n[2019-09-25 14:42:34 INFO] Running experiment: EC2 instances are self-healing\n[2019-09-25 14:42:35 INFO] Execution available at https://console.chaosiq.io/TeamB/executions/f2133988-a6c0-4c48-ac29-c167cea078c5\n[2019-09-25 14:42:35 INFO] Steady state hypothesis: EC2 instance self-heals\n[2019-09-25 14:42:36 INFO] Probe: there-should-be-one-running-instance\n[2019-09-25 14:42:39 INFO] Steady state hypothesis is met!\n[2019-09-25 14:42:40 INFO] Action: stopping-instance-now\n[2019-09-25 14:42:41 INFO] Pausing after activity for 5s...\n[2019-09-25 14:42:47 INFO] Steady state hypothesis: EC2 instance self-heals\n[2019-09-25 14:42:48 INFO] Probe: there-should-be-one-running-instance\n[2019-09-25 14:42:50 CRITICAL] Steady state probe 'there-should-be-one-running-instance' is not in the given tolerance so failing this experiment\n[2019-09-25 14:42:50 INFO] Let's rollback...\n[2019-09-25 14:42:50 INFO] Rollback: starting-instance-again\n[2019-09-25 14:42:51 INFO] Pausing before next activity for 15s...\n[2019-09-25 14:43:06 INFO] Action: starting-instance-again\n[2019-09-25 14:43:08 INFO] Experiment ended with status: deviated\n[2019-09-25 14:43:08 INFO] The steady-state has deviated, a weakness may have been discovered\n\n```\n\n### Publish existing execution\n\nThe `publish` command enables you to manually push your experimental \nfindings, typically recorded in the `journal.json`, to your ChaosIQ\norganization.\n\n### Disable safe guards checking\n\nDuring development time of your experiment, you may wish to disable checking\nfor safeguards as they can slow your work down. They aren't always relevant\neither. To disable the extension from requesting if the execution is allowed\nto carry on:\n\n```console\n$ chaos disable safeguards\n```\n\nObviously, run the mirroring command to enable them back:\n\n```console\n$ chaos enable safeguards\n```\n\n### Disable publishing experiments and executions\n\nIf you need to disable publishing for a little whie\n\n```console\n$ chaos disable publish\n```\n\nNote, when you disable publishing, you essentialy disable the entire extension.\n\nObviously, run the mirroring command to enable publishing again:\n\n```console\n$ chaos enable publish\n```\n\n## Contribute\n\nContributors to this project are welcome as this is an open-source effort that\nseeks [discussions][join] and continuous improvement.\n\n[join]: https://join.chaostoolkit.org/\n\nFrom a code perspective, if you wish to contribute, you will need to run a \nPython 3.5+ environment. Then, fork this repository and submit a PR. The\nproject cares for code readability and checks the code style to match best\npractices defined in [PEP8][pep8]. Please also make sure you provide tests\nwhenever you submit a PR so we keep the code reliable.\n\n[pep8]: https://pycodestyle.readthedocs.io/en/latest/\n\n### Develop\n\nIf you wish to develop on this project, make sure to install the development\ndependencies. But first, [create a virtual environment][venv] and then install\nthose dependencies.\n\n[venv]: http://chaostoolkit.org/reference/usage/install/#create-a-virtual-environment\n\n```console\n$ pip install -r requirements-dev.txt -r requirements.txt\n```\n\nThen, point your environment to this directory:\n\n```console\n$ pip install -e .\n```\n\nNow, you can edit the files and they will be automatically be seen by your\nenvironment, even when running from the `chaos` command locally.\n\nDon't forget to run the linter regularly:\n\n```\n$ pylama chaoscloud\n```\n\n### Test\n\nTo run the tests for the project execute the following:\n\n```\n$ pytest\n```\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://chaosiq.io", "keywords": "", "license": "Apache License Version 2.0", "maintainer": "", "maintainer_email": "", "name": "chaosiq-cloud", "package_url": "https://pypi.org/project/chaosiq-cloud/", "platform": "", "project_url": "https://pypi.org/project/chaosiq-cloud/", "project_urls": { "Homepage": "https://chaosiq.io" }, "release_url": "https://pypi.org/project/chaosiq-cloud/0.4.1/", "requires_dist": [ "chaostoolkit-lib (~=1.7)", "chaostoolkit (~=1.3)", "click (~=7.0)", "logzero (~=1.5)", "requests (~=2.21)", "simplejson (~=3.16)", "pyyaml (~=5.0)", "tzlocal (~=1.5)", "cloudevents (~=0.2)" ], "requires_python": ">=3.5.*", "summary": "ChaosIQ plugin for the Chaos Toolkit CLI", "version": "0.4.1" }, "last_serial": 5903702, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "353065258a6d850806d50413482c9588", "sha256": "b7e9f7416a9c0c1353ab433c9cfeeb048fcd5c2497a683d2bf624f8e441b4597" }, "downloads": -1, "filename": "chaosiq_cloud-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "353065258a6d850806d50413482c9588", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.*", "size": 20524, "upload_time": "2019-09-25T13:17:34", "url": "https://files.pythonhosted.org/packages/9a/a4/ce126a66540878bbbe7948e974f189d4639ce68016c0d468e141c2652c3c/chaosiq_cloud-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f655a8ba1c0aa668fb8cd0b203e08907", "sha256": "01cbc34e37ecef6c940cb1a021546ba3df95efc469725cc67a20ad29b8dae839" }, "downloads": -1, "filename": "chaosiq-cloud-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f655a8ba1c0aa668fb8cd0b203e08907", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 17642, "upload_time": "2019-09-25T13:17:36", "url": "https://files.pythonhosted.org/packages/c9/62/262c365bbd53a8fd9d03810758b93d02cc29cf207cb2471a2d171d6ceb22/chaosiq-cloud-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7273756677cf6707f87cf4744bb21215", "sha256": "2bd4b2b5b188ba94bc355ef84570f8f1c58de42b2e392e311edd0584c9547871" }, "downloads": -1, "filename": "chaosiq_cloud-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7273756677cf6707f87cf4744bb21215", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.*", "size": 21164, "upload_time": "2019-09-27T09:27:54", "url": "https://files.pythonhosted.org/packages/05/fc/a9ded4531cc52abe28b6cdf2c0bb3ba6630ef610884df11666be5c24018a/chaosiq_cloud-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "047e3b4713d96d52765ed96f69579d76", "sha256": "bb79efe5ef43d618096c2d5be53738c7823dcf0a8523f079dcdf3525a3b17435" }, "downloads": -1, "filename": "chaosiq-cloud-0.4.0.tar.gz", "has_sig": false, "md5_digest": "047e3b4713d96d52765ed96f69579d76", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18134, "upload_time": "2019-09-27T09:27:56", "url": "https://files.pythonhosted.org/packages/27/aa/79cf600e1989f3b7ccb13c60b0ddc7a11b472a69463e55d5e26005f4ec69/chaosiq-cloud-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e03181d5d587dd06d08bee2760c7ff0e", "sha256": "789e7a27d197d1cb908b3bccabffac46dbe1d27937ed0b314704e3e04fe98ff4" }, "downloads": -1, "filename": "chaosiq_cloud-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e03181d5d587dd06d08bee2760c7ff0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.*", "size": 21224, "upload_time": "2019-09-29T19:57:56", "url": "https://files.pythonhosted.org/packages/28/02/46c77bb8e951fe11d97bc201b8eb208416cc3d7d0d85b7490a1b049377e2/chaosiq_cloud-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d0000bbd59a181cc0e0bb6000673c1a", "sha256": "da4c3130c0394ddeb6fdb29e24e1a98a422ea6ca9f9dd3c14e198802b4efddbf" }, "downloads": -1, "filename": "chaosiq-cloud-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4d0000bbd59a181cc0e0bb6000673c1a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18238, "upload_time": "2019-09-29T19:57:58", "url": "https://files.pythonhosted.org/packages/23/c5/af4e687c1fe10944f85b4ea7a2ed1f57120ad3ad127ce102ee57a9bbb26e/chaosiq-cloud-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e03181d5d587dd06d08bee2760c7ff0e", "sha256": "789e7a27d197d1cb908b3bccabffac46dbe1d27937ed0b314704e3e04fe98ff4" }, "downloads": -1, "filename": "chaosiq_cloud-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e03181d5d587dd06d08bee2760c7ff0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.*", "size": 21224, "upload_time": "2019-09-29T19:57:56", "url": "https://files.pythonhosted.org/packages/28/02/46c77bb8e951fe11d97bc201b8eb208416cc3d7d0d85b7490a1b049377e2/chaosiq_cloud-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d0000bbd59a181cc0e0bb6000673c1a", "sha256": "da4c3130c0394ddeb6fdb29e24e1a98a422ea6ca9f9dd3c14e198802b4efddbf" }, "downloads": -1, "filename": "chaosiq-cloud-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4d0000bbd59a181cc0e0bb6000673c1a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18238, "upload_time": "2019-09-29T19:57:58", "url": "https://files.pythonhosted.org/packages/23/c5/af4e687c1fe10944f85b4ea7a2ed1f57120ad3ad127ce102ee57a9bbb26e/chaosiq-cloud-0.4.1.tar.gz" } ] }