diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-12 00:06:30 +0000 | 
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 00:06:30 +0000 | 
| commit | feab6e49c6066710903a719489f0f6bcae586734 (patch) | |
| tree | 7d00ac17bd96525fd7adb95c89ae89e2dab3899c | |
| parent | 46285ee035ea4dc8492f53943e32094fb93240d5 (diff) | |
automatic import of python-chaostoolkit-lib
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-chaostoolkit-lib.spec | 719 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 721 insertions, 0 deletions
| @@ -0,0 +1 @@ +/chaostoolkit-lib-1.34.1.tar.gz diff --git a/python-chaostoolkit-lib.spec b/python-chaostoolkit-lib.spec new file mode 100644 index 0000000..738befa --- /dev/null +++ b/python-chaostoolkit-lib.spec @@ -0,0 +1,719 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-chaostoolkit-lib +Version:	1.34.1 +Release:	1 +Summary:	Chaos Toolkit core library +License:	Apache License Version 2.0 +URL:		https://chaostoolkit.org +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/d9/01/f96721e61b36cc765c6f090e6f0c7b6ca6bcbfb115f28a4dc176f33bc137/chaostoolkit-lib-1.34.1.tar.gz +BuildArch:	noarch + +Requires:	python3-logzero +Requires:	python3-requests +Requires:	python3-pyyaml +Requires:	python3-importlib-metadata +Requires:	python3-cchardet +Requires:	python3-chardet +Requires:	python3-jsonpath2 +Requires:	python3-hvac + +%description +# Chaos Toolkit Core Library + +[](https://img.shields.io/pypi/v/chaostoolkit-lib.svg) +[](https://img.shields.io/pypi/l/chaostoolkit-lib.svg) + + +[](https://codecov.io/gh/chaostoolkit/chaostoolkit-lib) +[](https://www.python.org/) + + +The Chaos Toolkit core library implementing the [Open Chaos Initiative][oci]. + +[oci]: https://openchaos.io/ + +[](https://chaostoolkit.org/) + +## Purpose + +The purpose of this library is to provide the core of the Chaos Toolkit  +[model][concepts] and functions it needs to render its services. + +Unless you wish to create your own toolkit, you will likely not use directly +this library. + +[concepts]: https://docs.chaostoolkit.org/reference/concepts/ + +## Features + +The library provides the followings features: + +* discover capabilities from extensions +  Allows you to explore the support from an extension that would help you +  initialize an experiment against the system this extension targets + +* validate a given experiment syntax +  The validation looks at various keys in the experiment and raises errors +  whenever something doesn't look right. +  As a nice addition, when a probe calls a Python function with arguments, +  it tries to validate the given argument list matches the signature of the +  function to apply. + +* run your steady state before and after the method. The former as a gate to +  decide if the experiment can be executed. The latter to see if the system +  deviated from normal. + +* run probes and actions declared in an experiment +  It runs the steps in a experiment method sequentially, applying first steady +  probes, then actions and finally close probes. + +  A journal, as a JSON payload, is return of the experiment run. + +  The library supports running probes and actions defined as Python functions, +  from importable Python modules, processes and HTTP calls. + +* run experiment's rollbacks when provided + +* Load secrets from the experiments, the environ or [vault][vault] + +* Provides event notification from Chaos Toolkit flow (although the actual +  events are published by the CLI itself, not from this library), supported +  events are: +  * on experiment validation: started, failed or completed +  * on discovery: started, failed or completed +  * on initialization of experiments: started, failed or completed +  * on experiment runs: started, failed or completed + +  For each event, the according payload is part of the event as well as a UTC +  timestamp. + +[vault]: https://www.vaultproject.io/ + +## Install + +If you are user of the Chaos Toolkit, you probably do not need to install this +package yourself as it comes along with the [chaostoolkit cli][cli]. + +[cli]: https://github.com/chaostoolkit/chaostoolkit + +However, should you wish to integrate this library in your own Python code, +please install it as usual: + +``` +$ pip install -U chaostoolkit-lib +``` + +### Specific dependencies + +In addition to essential dependencies, the package can install a couple of +other extra dependencies for specific use-cases. They are not mandatory and +the library will warn you if you try to use a feature that requires them. + +### Vault + +If you need [Vault][vault] support to read secrets from, run the following +command: + +[vault]: https://www.vaultproject.io/ +``` +$ pip install -U chaostoolkit-lib[vault] +``` + +To authenticate with Vault, you can either: +* Use a token through the `vault_token` configuration key +* Use an [AppRole][approle] via the `vault_role_id`, `vault_secret_id` pair of configuration keys +* Use a [service account][serviceaccount] configured with an appropriate [role][role] via the `vault_sa_role` configuration key. The `vault_sa_token_path`, `vault_k8s_mount_point`, and `vault_secrets_mount_point` configuration keys can optionally be specified to point to a location containing a service account [token][sa-token], a different Kubernetes authentication method [mount point][k8s-mount], or a different secrets [mount point][secrets-mount], respectively. + +[approle]: https://www.vaultproject.io/docs/auth/approle.html +[serviceaccount]: https://www.vaultproject.io/api/auth/kubernetes/index.html +[role]: https://www.vaultproject.io/api/auth/kubernetes/index.html#create-role +[sa-token]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection +[k8s-mount]: https://www.vaultproject.io/docs/auth/kubernetes.html +[secrets-mount]: https://www.vaultproject.io/api/secret/kv/kv-v1.htm + + +### JSON Path + +If you need [JSON Path support][jpath] for tolerance probes in the hypothesis, +also run the following command: + +[jpath]: http://goessner.net/articles/JsonPath/ + +``` +$ pip install -U chaostoolkit-lib[jsonpath] +``` + +When using a process activity, the standard output end error streams are logged +into the `chaostoolkit.log` file. The default encoding used is `utf-8` to decode +those streams. Sometimes, this is not the right encoding, so you can install +the [chardet][] or [cchardet][] packages to attempt the detection of the right +encoding. + +[chardet]: https://chardet.readthedocs.io/en/latest/ +[cchardet]: https://github.com/PyYoshi/cChardet + +``` +$ pip install -U chaostoolkit-lib[decoders] +``` + +## Contribute + +Contributors to this project are welcome as this is an open-source effort that +seeks [discussions][join] and continuous improvement. + +[join]: https://join.chaostoolkit.org/ + +From a code perspective, if you wish to contribute, you will need to run a  +Python 3.6+ environment. Please, fork this project, write unit tests to cover +the proposed changes, implement the changes, ensure they meet the formatting +standards set out by `black`, `flake8`, and `isort`, add an entry into  +`CHANGELOG.md`, and then raise a PR to the repository for review. + +Please refer to the [formatting](#formatting-and-linting) section for more +information on the formatting standards. + +The Chaos Toolkit projects require all contributors must sign a +[Developer Certificate of Origin][dco] on each commit they would like to merge +into the master branch of the repository. Please, make sure you can abide by +the rules of the DCO before submitting a PR. + +[dco]: https://github.com/probot/dco#how-it-works + + +### Develop + +If you wish to develop on this project, make sure to install the development +dependencies. But first, [create a virtual environment][venv] and then install +those dependencies. + +[venv]: http://chaostoolkit.org/reference/usage/install/#create-a-virtual-environment + + +```console +$ make install-dev +``` + +Now, you can edit the files and they will be automatically be seen by your +environment, even when running from the `chaos` command locally. + +### Test + +To run the tests for the project execute the following: + +``` +$ make tests +``` + +### Formatting and Linting + +We use a combination of [`black`][black], [`flake8`][flake8], and [`isort`][isort] +to both lint and format this repositories code. + +[black]: https://github.com/psf/black +[flake8]: https://github.com/PyCQA/flake8 +[isort]: https://github.com/PyCQA/isort + +Before raising a Pull Request, we recommend you run formatting against your +code with: + +```console +$ make format +``` + +This will automatically format any code that doesn't adhere to the formatting +standards. + +As some things are not picked up by the formatting, we also recommend you run: + +```console +$ make lint +``` + +To ensure that any unused import statements/strings that are too long, etc. +are also picked up. + + +%package -n python3-chaostoolkit-lib +Summary:	Chaos Toolkit core library +Provides:	python-chaostoolkit-lib +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-chaostoolkit-lib +# Chaos Toolkit Core Library + +[](https://img.shields.io/pypi/v/chaostoolkit-lib.svg) +[](https://img.shields.io/pypi/l/chaostoolkit-lib.svg) + + +[](https://codecov.io/gh/chaostoolkit/chaostoolkit-lib) +[](https://www.python.org/) + + +The Chaos Toolkit core library implementing the [Open Chaos Initiative][oci]. + +[oci]: https://openchaos.io/ + +[](https://chaostoolkit.org/) + +## Purpose + +The purpose of this library is to provide the core of the Chaos Toolkit  +[model][concepts] and functions it needs to render its services. + +Unless you wish to create your own toolkit, you will likely not use directly +this library. + +[concepts]: https://docs.chaostoolkit.org/reference/concepts/ + +## Features + +The library provides the followings features: + +* discover capabilities from extensions +  Allows you to explore the support from an extension that would help you +  initialize an experiment against the system this extension targets + +* validate a given experiment syntax +  The validation looks at various keys in the experiment and raises errors +  whenever something doesn't look right. +  As a nice addition, when a probe calls a Python function with arguments, +  it tries to validate the given argument list matches the signature of the +  function to apply. + +* run your steady state before and after the method. The former as a gate to +  decide if the experiment can be executed. The latter to see if the system +  deviated from normal. + +* run probes and actions declared in an experiment +  It runs the steps in a experiment method sequentially, applying first steady +  probes, then actions and finally close probes. + +  A journal, as a JSON payload, is return of the experiment run. + +  The library supports running probes and actions defined as Python functions, +  from importable Python modules, processes and HTTP calls. + +* run experiment's rollbacks when provided + +* Load secrets from the experiments, the environ or [vault][vault] + +* Provides event notification from Chaos Toolkit flow (although the actual +  events are published by the CLI itself, not from this library), supported +  events are: +  * on experiment validation: started, failed or completed +  * on discovery: started, failed or completed +  * on initialization of experiments: started, failed or completed +  * on experiment runs: started, failed or completed + +  For each event, the according payload is part of the event as well as a UTC +  timestamp. + +[vault]: https://www.vaultproject.io/ + +## Install + +If you are user of the Chaos Toolkit, you probably do not need to install this +package yourself as it comes along with the [chaostoolkit cli][cli]. + +[cli]: https://github.com/chaostoolkit/chaostoolkit + +However, should you wish to integrate this library in your own Python code, +please install it as usual: + +``` +$ pip install -U chaostoolkit-lib +``` + +### Specific dependencies + +In addition to essential dependencies, the package can install a couple of +other extra dependencies for specific use-cases. They are not mandatory and +the library will warn you if you try to use a feature that requires them. + +### Vault + +If you need [Vault][vault] support to read secrets from, run the following +command: + +[vault]: https://www.vaultproject.io/ +``` +$ pip install -U chaostoolkit-lib[vault] +``` + +To authenticate with Vault, you can either: +* Use a token through the `vault_token` configuration key +* Use an [AppRole][approle] via the `vault_role_id`, `vault_secret_id` pair of configuration keys +* Use a [service account][serviceaccount] configured with an appropriate [role][role] via the `vault_sa_role` configuration key. The `vault_sa_token_path`, `vault_k8s_mount_point`, and `vault_secrets_mount_point` configuration keys can optionally be specified to point to a location containing a service account [token][sa-token], a different Kubernetes authentication method [mount point][k8s-mount], or a different secrets [mount point][secrets-mount], respectively. + +[approle]: https://www.vaultproject.io/docs/auth/approle.html +[serviceaccount]: https://www.vaultproject.io/api/auth/kubernetes/index.html +[role]: https://www.vaultproject.io/api/auth/kubernetes/index.html#create-role +[sa-token]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection +[k8s-mount]: https://www.vaultproject.io/docs/auth/kubernetes.html +[secrets-mount]: https://www.vaultproject.io/api/secret/kv/kv-v1.htm + + +### JSON Path + +If you need [JSON Path support][jpath] for tolerance probes in the hypothesis, +also run the following command: + +[jpath]: http://goessner.net/articles/JsonPath/ + +``` +$ pip install -U chaostoolkit-lib[jsonpath] +``` + +When using a process activity, the standard output end error streams are logged +into the `chaostoolkit.log` file. The default encoding used is `utf-8` to decode +those streams. Sometimes, this is not the right encoding, so you can install +the [chardet][] or [cchardet][] packages to attempt the detection of the right +encoding. + +[chardet]: https://chardet.readthedocs.io/en/latest/ +[cchardet]: https://github.com/PyYoshi/cChardet + +``` +$ pip install -U chaostoolkit-lib[decoders] +``` + +## Contribute + +Contributors to this project are welcome as this is an open-source effort that +seeks [discussions][join] and continuous improvement. + +[join]: https://join.chaostoolkit.org/ + +From a code perspective, if you wish to contribute, you will need to run a  +Python 3.6+ environment. Please, fork this project, write unit tests to cover +the proposed changes, implement the changes, ensure they meet the formatting +standards set out by `black`, `flake8`, and `isort`, add an entry into  +`CHANGELOG.md`, and then raise a PR to the repository for review. + +Please refer to the [formatting](#formatting-and-linting) section for more +information on the formatting standards. + +The Chaos Toolkit projects require all contributors must sign a +[Developer Certificate of Origin][dco] on each commit they would like to merge +into the master branch of the repository. Please, make sure you can abide by +the rules of the DCO before submitting a PR. + +[dco]: https://github.com/probot/dco#how-it-works + + +### Develop + +If you wish to develop on this project, make sure to install the development +dependencies. But first, [create a virtual environment][venv] and then install +those dependencies. + +[venv]: http://chaostoolkit.org/reference/usage/install/#create-a-virtual-environment + + +```console +$ make install-dev +``` + +Now, you can edit the files and they will be automatically be seen by your +environment, even when running from the `chaos` command locally. + +### Test + +To run the tests for the project execute the following: + +``` +$ make tests +``` + +### Formatting and Linting + +We use a combination of [`black`][black], [`flake8`][flake8], and [`isort`][isort] +to both lint and format this repositories code. + +[black]: https://github.com/psf/black +[flake8]: https://github.com/PyCQA/flake8 +[isort]: https://github.com/PyCQA/isort + +Before raising a Pull Request, we recommend you run formatting against your +code with: + +```console +$ make format +``` + +This will automatically format any code that doesn't adhere to the formatting +standards. + +As some things are not picked up by the formatting, we also recommend you run: + +```console +$ make lint +``` + +To ensure that any unused import statements/strings that are too long, etc. +are also picked up. + + +%package help +Summary:	Development documents and examples for chaostoolkit-lib +Provides:	python3-chaostoolkit-lib-doc +%description help +# Chaos Toolkit Core Library + +[](https://img.shields.io/pypi/v/chaostoolkit-lib.svg) +[](https://img.shields.io/pypi/l/chaostoolkit-lib.svg) + + +[](https://codecov.io/gh/chaostoolkit/chaostoolkit-lib) +[](https://www.python.org/) + + +The Chaos Toolkit core library implementing the [Open Chaos Initiative][oci]. + +[oci]: https://openchaos.io/ + +[](https://chaostoolkit.org/) + +## Purpose + +The purpose of this library is to provide the core of the Chaos Toolkit  +[model][concepts] and functions it needs to render its services. + +Unless you wish to create your own toolkit, you will likely not use directly +this library. + +[concepts]: https://docs.chaostoolkit.org/reference/concepts/ + +## Features + +The library provides the followings features: + +* discover capabilities from extensions +  Allows you to explore the support from an extension that would help you +  initialize an experiment against the system this extension targets + +* validate a given experiment syntax +  The validation looks at various keys in the experiment and raises errors +  whenever something doesn't look right. +  As a nice addition, when a probe calls a Python function with arguments, +  it tries to validate the given argument list matches the signature of the +  function to apply. + +* run your steady state before and after the method. The former as a gate to +  decide if the experiment can be executed. The latter to see if the system +  deviated from normal. + +* run probes and actions declared in an experiment +  It runs the steps in a experiment method sequentially, applying first steady +  probes, then actions and finally close probes. + +  A journal, as a JSON payload, is return of the experiment run. + +  The library supports running probes and actions defined as Python functions, +  from importable Python modules, processes and HTTP calls. + +* run experiment's rollbacks when provided + +* Load secrets from the experiments, the environ or [vault][vault] + +* Provides event notification from Chaos Toolkit flow (although the actual +  events are published by the CLI itself, not from this library), supported +  events are: +  * on experiment validation: started, failed or completed +  * on discovery: started, failed or completed +  * on initialization of experiments: started, failed or completed +  * on experiment runs: started, failed or completed + +  For each event, the according payload is part of the event as well as a UTC +  timestamp. + +[vault]: https://www.vaultproject.io/ + +## Install + +If you are user of the Chaos Toolkit, you probably do not need to install this +package yourself as it comes along with the [chaostoolkit cli][cli]. + +[cli]: https://github.com/chaostoolkit/chaostoolkit + +However, should you wish to integrate this library in your own Python code, +please install it as usual: + +``` +$ pip install -U chaostoolkit-lib +``` + +### Specific dependencies + +In addition to essential dependencies, the package can install a couple of +other extra dependencies for specific use-cases. They are not mandatory and +the library will warn you if you try to use a feature that requires them. + +### Vault + +If you need [Vault][vault] support to read secrets from, run the following +command: + +[vault]: https://www.vaultproject.io/ +``` +$ pip install -U chaostoolkit-lib[vault] +``` + +To authenticate with Vault, you can either: +* Use a token through the `vault_token` configuration key +* Use an [AppRole][approle] via the `vault_role_id`, `vault_secret_id` pair of configuration keys +* Use a [service account][serviceaccount] configured with an appropriate [role][role] via the `vault_sa_role` configuration key. The `vault_sa_token_path`, `vault_k8s_mount_point`, and `vault_secrets_mount_point` configuration keys can optionally be specified to point to a location containing a service account [token][sa-token], a different Kubernetes authentication method [mount point][k8s-mount], or a different secrets [mount point][secrets-mount], respectively. + +[approle]: https://www.vaultproject.io/docs/auth/approle.html +[serviceaccount]: https://www.vaultproject.io/api/auth/kubernetes/index.html +[role]: https://www.vaultproject.io/api/auth/kubernetes/index.html#create-role +[sa-token]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection +[k8s-mount]: https://www.vaultproject.io/docs/auth/kubernetes.html +[secrets-mount]: https://www.vaultproject.io/api/secret/kv/kv-v1.htm + + +### JSON Path + +If you need [JSON Path support][jpath] for tolerance probes in the hypothesis, +also run the following command: + +[jpath]: http://goessner.net/articles/JsonPath/ + +``` +$ pip install -U chaostoolkit-lib[jsonpath] +``` + +When using a process activity, the standard output end error streams are logged +into the `chaostoolkit.log` file. The default encoding used is `utf-8` to decode +those streams. Sometimes, this is not the right encoding, so you can install +the [chardet][] or [cchardet][] packages to attempt the detection of the right +encoding. + +[chardet]: https://chardet.readthedocs.io/en/latest/ +[cchardet]: https://github.com/PyYoshi/cChardet + +``` +$ pip install -U chaostoolkit-lib[decoders] +``` + +## Contribute + +Contributors to this project are welcome as this is an open-source effort that +seeks [discussions][join] and continuous improvement. + +[join]: https://join.chaostoolkit.org/ + +From a code perspective, if you wish to contribute, you will need to run a  +Python 3.6+ environment. Please, fork this project, write unit tests to cover +the proposed changes, implement the changes, ensure they meet the formatting +standards set out by `black`, `flake8`, and `isort`, add an entry into  +`CHANGELOG.md`, and then raise a PR to the repository for review. + +Please refer to the [formatting](#formatting-and-linting) section for more +information on the formatting standards. + +The Chaos Toolkit projects require all contributors must sign a +[Developer Certificate of Origin][dco] on each commit they would like to merge +into the master branch of the repository. Please, make sure you can abide by +the rules of the DCO before submitting a PR. + +[dco]: https://github.com/probot/dco#how-it-works + + +### Develop + +If you wish to develop on this project, make sure to install the development +dependencies. But first, [create a virtual environment][venv] and then install +those dependencies. + +[venv]: http://chaostoolkit.org/reference/usage/install/#create-a-virtual-environment + + +```console +$ make install-dev +``` + +Now, you can edit the files and they will be automatically be seen by your +environment, even when running from the `chaos` command locally. + +### Test + +To run the tests for the project execute the following: + +``` +$ make tests +``` + +### Formatting and Linting + +We use a combination of [`black`][black], [`flake8`][flake8], and [`isort`][isort] +to both lint and format this repositories code. + +[black]: https://github.com/psf/black +[flake8]: https://github.com/PyCQA/flake8 +[isort]: https://github.com/PyCQA/isort + +Before raising a Pull Request, we recommend you run formatting against your +code with: + +```console +$ make format +``` + +This will automatically format any code that doesn't adhere to the formatting +standards. + +As some things are not picked up by the formatting, we also recommend you run: + +```console +$ make lint +``` + +To ensure that any unused import statements/strings that are too long, etc. +are also picked up. + + +%prep +%autosetup -n chaostoolkit-lib-1.34.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then +	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then +	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then +	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then +	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then +	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-chaostoolkit-lib -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 1.34.1-1 +- Package Spec generated @@ -0,0 +1 @@ +0e76c620476ec831921ab90d0a8b6697  chaostoolkit-lib-1.34.1.tar.gz | 
