Catalog PyPI
PACKAGE EXPLORERView in registry

agipy

PyPI

destroy cloud infrastructure in a hurry

azurecliclouddevopssysadmintool
Versions collected1
Direct dependencies4From release 0.2.2
Last observed21 Oct, 09:09 UTC

README

Version 0.2.2 documentation

agipy
=====


.. image:: https://travis-ci.org/shimst3r/agipy.svg?branch=master
   :target: https://travis-ci.org/shimst3r/agipy
   :alt: Build Status


..

   /əˈ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 <https://en.wikipedia.org/wiki/Cloud_seeding#Methodology>`_.
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 <https://www.python.org/>`_ 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 <https://pypi.org/project/agipy/>`_\ , so you can install it using ``pip``\ :

.. code-block:: sh

   pip install --user agipy

In addition you can clone the repository and then install it from source via:

.. code-block:: sh

   python3 setup.py install

To find out how the CLI works, use the built-in help function:

.. code-block:: sh

   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:


* `Microsoft Azure <https://azure.microsoft.com/en-us/>`_

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:

.. code-block:: sh

   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

.. code-block:: sh

   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
------------


* `shimst3r <https://twitter.com/shimst3r>`_

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/



Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.223 Oct 20194

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
shimst3r/agipy

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 09:09 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:60994afec7ce639def1d95a0187caaf8bd832e2fccd6cd75c6f015899fceb241