destroy cloud infrastructure in a hurry
Project description
/əˈdʒɪˈpaɪ/, portmanteau of AgI (chemical formula of silver iodide) and Python
agipy enables you to destroy cloud infrastructure in a hurry. Whether you want to destroy a demo environment you no longer need or want to purge artifacts a colleague left behind, agipy is here to help you dissolving your cloud problems.
About the name
agipy is a portmanteau of the chemical formula AgI for silver iodide and the word Python.
Silver iodide is a chemical used for cloud seeding. Cloud seeding is a weather modification that changes the amount or type of precipitation that falls from clouds; in my opinion that is an appropriate metaphor for deleting cloud infrastructure, especially compared to alternatives that include “nukes” or “EMPs”.
Python is the language agipy is implemented in. It is a great language for everything concerning cloud infrastructure and automation, and it happens to be the language I feel most comfortable with.
How to use agipy
agipy is available on PyPI, so you can install it using pip:
pip install --user agipy
In addition you can clone the repository and then install it from source via:
python3 setup.py install
To find out how the CLI works, use the built-in help function:
agipy --help
agipy is based on the concept of providers: For each public cloud provider, a agipy-specific provider module has to be implemented. At the moment, the following provider modules exist:
Because each provider has its own semantics, please refer to the respective subsection.
How to use the azure provider
As of yet, the azure provider is capable of deleting all resource groups with a specific prefix. For using the provider, you have to set the following environment variables:
AZURE_CLIENT_ID, the service principal ID
AZURE_CLIENT_SECRET, the service principal secret
AZURE_SUBSCRIPTION_ID
AZURE_TENANT_ID
Alternatively you can provide any of these values via command line arguments, see below.
You can call the provider via:
agipy azure --prefix=${RG_PREFIX} [--client-id=${AZURE_CLIENT_ID}] [--client-secret=${AZURE_CLIENT_SECRET}] [--subscription-id=${AZURE_SUBSCRIPTION_ID}] [--tenant-id=${AZURE_TENANT_ID}]
How to Test
The test suite is based on the great ``pytest` <https://docs.pytest.org/en/latest/>`_ library. Once installed, the automatic test discovery can be used via
pytest agipy
In order to keep the tests clean and run smoothly, I try to use subtests and patches where possible.
How to Contribute
This project is released under the GPL license, so I am happy for contributions, forks, and feedback! This can be done in many ways:
Open PRs with improvements,
add issues if you find bugs,
add issues for new features,
use agipy and spread the word.
PRs have to comply with:
``black` <https://black.readthedocs.io/en/stable/>`_,
``mypy` <http://mypy-lang.org>`_,
and ``pylint` <https://www.pylint.org>`_.
New features must be covered by proper tests (idealy unit tests and functional tests) using the ``pytest` <https://docs.pytest.org/en/latest/>`_ library.
Contributors
License
agipy enables you to destroy cloud infrastructure in a hurry. Copyright (C) 2019 Nils Müller shimst3r@gmail.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file agipy-0.2.2.tar.gz
.
File metadata
- Download URL: agipy-0.2.2.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2375b3c5e94ccf3d08dd0ab7eea35e10d1711c6d6c44d69c1919ab4d038e0039 |
|
MD5 | 76f4de1e8b64f0a9f335dd44b8337b20 |
|
BLAKE2b-256 | bc18912f62b23f4bbdadb7a0954c130628032c10b2d22f5b6396508279b53e96 |
File details
Details for the file agipy-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: agipy-0.2.2-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e71c696f9dde5e43fd9d2c708e18b3ad5104d297a5f7fb2c57a215366434e37 |
|
MD5 | 7e09b8d0b9abc3131115b18bd656b38e |
|
BLAKE2b-256 | 8349245897ed33065dafefb6a47411c39b977cd81b415cb5aa5fed388f1c51f2 |