Package: agipy
/əˈdʒɪˈpaɪ/, portmanteau of AgI (chemical formula of silver iodide) and Pythonagipyenables 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,agipyis here
to help you dissolving your cloud problems.About the nameagipyis a portmanteau of the chemical formula AgI for silver iodide and the word Python.Silver iodide is a chemical used forcloud 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”.Pythonis the languageagipyis 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 useagipyagipyis available onPyPI, so you can install it usingpip:pipinstall--useragipyIn addition you can clone the repository and then install it from source via:python3setup.pyinstallTo find out how the CLI works, use the built-in help function:agipy--helpagipyis based on the concept ofproviders: For each public cloud provider, aagipy-specific
provider module has to be implemented. At the moment, the following provider modules exist:Microsoft AzureBecause each provider has its own semantics, please refer to the respective subsection.How to use theazureproviderAs of yet, theazureprovider 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 IDAZURE_CLIENT_SECRET, the service principal secretAZURE_SUBSCRIPTION_IDAZURE_TENANT_IDAlternatively you can provide any of these values via command line arguments, see below.You can call the provider via:agipyazure--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 TestThe test suite is based on the great``pytest`<https://docs.pytest.org/en/latest/>`_ library. Once installed, the automatic test
discovery can be used viapytestagipyIn order to keep the tests clean and run smoothly, I try to use subtests and patches where possible.How to ContributeThis 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,useagipyand 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.Contributorsshimst3rLicenseagipy enables you to destroy cloud infrastructure in a hurry.
Copyright (C) 2019  Nils Müllershimst3r@gmail.comThis 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, seehttps://www.gnu.org/licenses/