{ "info": { "author": "chaostoolkit Team", "author_email": "contact@chaostoolkit.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "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 :: Implementation", "Programming Language :: Python :: Implementation :: CPython" ], "description": "# Chaos Toolkit Extension for Azure\n\n[![Build Status](https://travis-ci.org/chaostoolkit-incubator/chaostoolkit-azure.svg?branch=master)](https://travis-ci.org/chaostoolkit-incubator/chaostoolkit-azure)\n[![Python versions](https://img.shields.io/pypi/pyversions/chaostoolkit-azure.svg)](https://www.python.org/)\n\nThis project is a collection of [actions][] and [probes][], gathered as an\nextension to the [Chaos Toolkit][chaostoolkit]. It targets the\n[Microsoft Azure][azure] platform.\n\n[actions]: http://chaostoolkit.org/reference/api/experiment/#action\n[probes]: http://chaostoolkit.org/reference/api/experiment/#probe\n[chaostoolkit]: http://chaostoolkit.org\n[azure]: https://azure.microsoft.com/en-us/\n\n## Install\n\nThis package requires Python 3.5+\n\nTo be used from your experiment, this package must be installed in the Python\nenvironment where [chaostoolkit][] already lives.\n\n```\n$ pip install -U chaostoolkit-azure\n```\n\n## Usage\n\nTo use the probes and actions from this package, add the following to your\nexperiment file:\n\n```json\n{\n \"type\": \"action\",\n \"name\": \"start-service-factory-chaos\",\n \"provider\": {\n \"type\": \"python\",\n \"module\": \"chaosazure.vm.actions\",\n \"func\": \"stop_machines\",\n \"secrets\": [\"azure\"],\n \"arguments\": {\n \"parameters\": {\n \"TimeToRunInSeconds\": 45\n }\n }\n }\n}\n```\n\nThat's it!\n\nPlease explore the code to see existing probes and actions.\n\n\n\n## Configuration\n\n### Credentials\nThis extension uses the [Azure SDK][sdk] libraries under the hood. The Azure SDK library\nexpects that you have a tenant and client identifier, as well as a client secret and subscription, that allows you to \nauthenticate with the Azure resource management API.\n\n[creds]: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-connect-to-secure-cluster\n[requests]: http://docs.python-requests.org/en/master/\n[sdk]: https://github.com/Azure/azure-sdk-for-python\n\nThere are two ways of doing this:\n\n* you can either pass the name of the environment variables to the experiment definition as follows (recommended):\n\n ```json\n {\n \"azure\": {\n \"client_id\": \"AZURE_CLIENT_ID\",\n \"client_secret\": \"AZURE_CLIENT_SECRET\",\n \"tenant_id\": \"AZURE_TENANT_ID\"\n }\n }\n ```\n\n* or you inject the secrets explicitly to the experiment definition:\n\n ```json\n {\n \"azure\": {\n \"client_id\": \"your-super-secret-client-id\",\n \"client_secret\": \"your-even-more-super-secret-client-secret\",\n \"tenant_id\": \"your-tenant-id\"\n }\n }\n ```\n\n Additionally you need to provide the Azure subscription id.\n\n ```json\n {\n \"azure\": {\n \"subscription_id\": \"your-azure-subscription-id\"\n }\n }\n ```\n\n### Putting it all together\n\nHere is a full example:\n\n```json\n{\n \"version\": \"1.0.0\",\n \"title\": \"...\",\n \"description\": \"...\",\n \"tags\": [\n \"azure\",\n \"kubernetes\",\n\t\"aks\",\n\t\"node\"\n ],\n \"configuration\": {\n \"azure\": {\n \"subscription_id\": \"xxx\"\n\t}\n },\n \"secrets\": {\n \"azure\": {\n \"client_id\": \"xxx\",\n \"client_secret\": \"xxx\",\n \"tenant_id\": \"xxx\"\n }\n },\n \"steady-state-hypothesis\": {\n \"title\": \"Services are all available and healthy\",\n \"probes\": [\n {\n \"type\": \"probe\",\n \"name\": \"consumer-service-must-still-respond\",\n \"tolerance\": 200,\n \"provider\": {\n \"type\": \"http\",\n \"url\": \"https://some-url/\"\n }\n }\n ]\n },\n \"method\": [\n {\n \"type\": \"action\",\n \"name\": \"restart-node-at-random\",\n \"provider\": {\n \"type\": \"python\",\n \"module\": \"chaosazure.machine.actions\",\n \"func\": \"restart_machines\",\n \"secrets\": [\n \"azure\"\n ],\n \"config\": [\n \"azure\"\n ]\n }\n }\n ],\n \"rollbacks\": [\n\n ]\n}\n```\n\n## Contribute\n\nIf you wish to contribute more functions to this package, you are more than\nwelcome to do so. Please, fork this project, make your changes following the\nusual [PEP 8][pep8] code style, sprinkling with tests and submit a PR for\nreview.\n\n[pep8]: https://pycodestyle.readthedocs.io/en/latest/\n\nThe Chaos Toolkit projects require all contributors must sign a\n[Developer Certificate of Origin][dco] on each commit they would like to merge\ninto the master branch of the repository. Please, make sure you can abide by\nthe rules of the DCO before submitting a PR.\n\n[dco]: https://github.com/probot/dco#how-it-works\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$ python setup.py develop\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\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://chaostoolkit.org", "keywords": "", "license": "Apache License Version 2.0", "maintainer": "", "maintainer_email": "", "name": "chaostoolkit-azure", "package_url": "https://pypi.org/project/chaostoolkit-azure/", "platform": "", "project_url": "https://pypi.org/project/chaostoolkit-azure/", "project_urls": { "Homepage": "https://chaostoolkit.org" }, "release_url": "https://pypi.org/project/chaostoolkit-azure/0.5.0/", "requires_dist": [ "chaostoolkit-lib (>==1.1.2)", "azure-mgmt-compute", "azure-mgmt-resourcegraph", "azure-mgmt-web", "dateparser", "logzero", "requests" ], "requires_python": ">=3.5.*", "summary": "Chaos Toolkit Extension for Microsoft Azure", "version": "0.5.0" }, "last_serial": 5491660, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "0ae3e936c00065886213e5bbcbedd084", "sha256": "39d1539a45036fef956ceba33d76a5fe2dbee16ce09d14a1b736e506bc402266" }, "downloads": -1, "filename": "chaostoolkit_azure-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0ae3e936c00065886213e5bbcbedd084", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 7264, "upload_time": "2018-04-26T16:22:47", "url": "https://files.pythonhosted.org/packages/7a/3a/197a770a54127d15cf12c494008b73bd06e793ab033217e19e372631afc7/chaostoolkit_azure-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae0f25bbf0df1bafdcecf10cadf61d5c", "sha256": "2b675a5c0e5bd8602f94eb743a5e5a74c8cfcc9878ffc61152af3e2f35e52e3e" }, "downloads": -1, "filename": "chaostoolkit-azure-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ae0f25bbf0df1bafdcecf10cadf61d5c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 4553, "upload_time": "2018-04-26T16:22:48", "url": "https://files.pythonhosted.org/packages/9f/30/56e95535c26326fcd0265cb478420aa34af9d9d3cdb0b09eabc2b9968ab7/chaostoolkit-azure-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "aff02642f58eb01d34faa29626c84106", "sha256": "d14bbd0205e3ff05e42795bb9c8992f92db068b155f32494540034027019ff3a" }, "downloads": -1, "filename": "chaostoolkit_azure-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "aff02642f58eb01d34faa29626c84106", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 7263, "upload_time": "2018-05-14T13:21:45", "url": "https://files.pythonhosted.org/packages/d1/ca/23add875ccc9cfc15b6b9b71d631367d0717e3c3ee28408a4d18d77570e6/chaostoolkit_azure-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8004f9df065c7c6ebc7867ea3c59097", "sha256": "e6ca778e8d0341a9591feb0513bbc0136a93618fa0ba0ede2e719b8707474b21" }, "downloads": -1, "filename": "chaostoolkit-azure-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d8004f9df065c7c6ebc7867ea3c59097", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 9740, "upload_time": "2018-05-14T13:21:46", "url": "https://files.pythonhosted.org/packages/f1/66/0cf0acc7ebfdace9592c0b8db2dc4fa16d16c5cb8560bd076ec93bf0aea6/chaostoolkit-azure-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7ebc0c89b6dccb6fc571982705b3ca9c", "sha256": "3ca52502283c97a4697e53056a2cb39241d351a53c5d3dbf74bd0236e1dc690c" }, "downloads": -1, "filename": "chaostoolkit_azure-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7ebc0c89b6dccb6fc571982705b3ca9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 11182, "upload_time": "2018-06-06T14:17:47", "url": "https://files.pythonhosted.org/packages/9b/1d/8700f51c9536243ab7e2e16c5e9ade7f4568ee38c61f94fdf2f7dead6fb7/chaostoolkit_azure-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "848a7d5453cce7686d1a4127a8903af3", "sha256": "bdea65b853187d64d14f9633c7ebcfc7c1a753f12936ae7bd5ea6b702a29a0f8" }, "downloads": -1, "filename": "chaostoolkit-azure-0.1.3.tar.gz", "has_sig": false, "md5_digest": "848a7d5453cce7686d1a4127a8903af3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 12056, "upload_time": "2018-06-06T14:17:48", "url": "https://files.pythonhosted.org/packages/cc/6e/932c68438f5ca6db182f42f8acec06b3a565be5b40c1547bdbf6a190c8c2/chaostoolkit-azure-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2153904ff922187185beddd550b45647", "sha256": "427f5ef2c8bc1e4f6df3ea87250ac52653e2efef192b9302e567cd378e520f00" }, "downloads": -1, "filename": "chaostoolkit_azure-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2153904ff922187185beddd550b45647", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 11515, "upload_time": "2018-10-19T12:07:10", "url": "https://files.pythonhosted.org/packages/af/32/cb9c4dc034123741d96e25df85d9c105d3a44a82ce0e2495734f2c17590d/chaostoolkit_azure-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2cea13979ee5c0e45b4d9b78ac876129", "sha256": "e1b547c5ce832856b74432a13f0d4fa6321249b6927236f5614a7a0bb43a0fb7" }, "downloads": -1, "filename": "chaostoolkit-azure-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2cea13979ee5c0e45b4d9b78ac876129", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 16894, "upload_time": "2018-10-19T12:07:11", "url": "https://files.pythonhosted.org/packages/d4/b8/ca81127e63897f4b1bda54edb9d32baaeb3ae59236e7fff6415436f2952f/chaostoolkit-azure-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ca3879cc48d57c7ddea7793c3b483f95", "sha256": "f79d1a80b255af288d2084ecb1e1908f39f106481c36d2927cb25d5eea4238e8" }, "downloads": -1, "filename": "chaostoolkit_azure-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ca3879cc48d57c7ddea7793c3b483f95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 15756, "upload_time": "2018-12-21T14:26:01", "url": "https://files.pythonhosted.org/packages/47/7e/61f72c271f03d58c8e8420210820b6362e7357fe85555a4c96cae1603bd9/chaostoolkit_azure-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75470da8275e2bea37415357d07142a5", "sha256": "4af13e47e71ee5e6a111671aae6d7076c9569739a4e0f2ff1ac8589e79023956" }, "downloads": -1, "filename": "chaostoolkit-azure-0.3.0.tar.gz", "has_sig": false, "md5_digest": "75470da8275e2bea37415357d07142a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18500, "upload_time": "2018-12-21T14:26:02", "url": "https://files.pythonhosted.org/packages/1c/d9/0b3b3e2724cd48cc1b2a724f09261d0ccb836b5fc046e7a4f5664e272f49/chaostoolkit-azure-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c2b26b27ae9749756a7d7da6a7b0d80b", "sha256": "70efc81d72deb2a55de9186cd54f741a7c34e7aec5bdc060adce71e477acf4f9" }, "downloads": -1, "filename": "chaostoolkit_azure-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c2b26b27ae9749756a7d7da6a7b0d80b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 15886, "upload_time": "2019-01-06T11:20:18", "url": "https://files.pythonhosted.org/packages/3f/2b/d85d73dbe93892d64fc43fee593b9839f98972201cef18264c5c676e8b5b/chaostoolkit_azure-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33f622a049048a26b76a68b3b52a3883", "sha256": "a4521f8034a1b037dbc888525bddd5bc99d33cc8948ab1ba9e7a803d3e01207c" }, "downloads": -1, "filename": "chaostoolkit-azure-0.3.1.tar.gz", "has_sig": false, "md5_digest": "33f622a049048a26b76a68b3b52a3883", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18793, "upload_time": "2019-01-06T11:20:20", "url": "https://files.pythonhosted.org/packages/63/8e/b6d2954349665a05914897be23e5d1909bb3655455a5ee98a5149dd3fee3/chaostoolkit-azure-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9291597a7392f64514a50174271bbbe4", "sha256": "50203e5eb8086d1a2c029d1c099f5168e0330ad2cfbfbaf9be431b0c100194c6" }, "downloads": -1, "filename": "chaostoolkit_azure-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9291597a7392f64514a50174271bbbe4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 15944, "upload_time": "2019-04-15T08:55:46", "url": "https://files.pythonhosted.org/packages/b1/d4/189c34680942a0e602e9c532a17b0ff962db87af35a4cfd4d1967672aa78/chaostoolkit_azure-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d155ddbc657c2e325d66dbb3fcf3a5bc", "sha256": "d1c446a57a33527594089a6f2bc44ff02f4e4ea4eb0cab58763ca6d2cc7cdb62" }, "downloads": -1, "filename": "chaostoolkit-azure-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d155ddbc657c2e325d66dbb3fcf3a5bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 17841, "upload_time": "2019-04-15T08:55:48", "url": "https://files.pythonhosted.org/packages/20/e3/305bc1241ef341d5df1d604810ea5d15b9446205e5e23beba49a591e78f9/chaostoolkit-azure-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b91f6fbb706a563bf723c324ec03ddce", "sha256": "cac7e71b54e61a69b98331a1ad7d8655bc167a48156c532c38e9b86beccb9a95" }, "downloads": -1, "filename": "chaostoolkit_azure-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b91f6fbb706a563bf723c324ec03ddce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 17278, "upload_time": "2019-07-05T14:00:56", "url": "https://files.pythonhosted.org/packages/f5/f9/a41292dee882b89e2620291de68afce54036ec855ff9fe495797ad272860/chaostoolkit_azure-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07690d6c87e4203b28c3a631cf0c9f25", "sha256": "801b426fda95fd8e9ef348bf9988329d7534d46aa82dfe58017d7f06741ee4b2" }, "downloads": -1, "filename": "chaostoolkit-azure-0.5.0.tar.gz", "has_sig": false, "md5_digest": "07690d6c87e4203b28c3a631cf0c9f25", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18641, "upload_time": "2019-07-05T14:00:57", "url": "https://files.pythonhosted.org/packages/92/78/c6b2bc854f9bdbfbaead0fac21fd4cb91a2637acfcf9f0747fb7de5b6630/chaostoolkit-azure-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b91f6fbb706a563bf723c324ec03ddce", "sha256": "cac7e71b54e61a69b98331a1ad7d8655bc167a48156c532c38e9b86beccb9a95" }, "downloads": -1, "filename": "chaostoolkit_azure-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b91f6fbb706a563bf723c324ec03ddce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.*", "size": 17278, "upload_time": "2019-07-05T14:00:56", "url": "https://files.pythonhosted.org/packages/f5/f9/a41292dee882b89e2620291de68afce54036ec855ff9fe495797ad272860/chaostoolkit_azure-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07690d6c87e4203b28c3a631cf0c9f25", "sha256": "801b426fda95fd8e9ef348bf9988329d7534d46aa82dfe58017d7f06741ee4b2" }, "downloads": -1, "filename": "chaostoolkit-azure-0.5.0.tar.gz", "has_sig": false, "md5_digest": "07690d6c87e4203b28c3a631cf0c9f25", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.*", "size": 18641, "upload_time": "2019-07-05T14:00:57", "url": "https://files.pythonhosted.org/packages/92/78/c6b2bc854f9bdbfbaead0fac21fd4cb91a2637acfcf9f0747fb7de5b6630/chaostoolkit-azure-0.5.0.tar.gz" } ] }