do-audit 0.1.1
Audit your Digital Ocean account and make sure you know what's up
License: MIT License
Keywords: digital ocean audit do cli

do-audit
========

|Build status| |PyPI version| |Python versions| |License|

Audit your Digital Ocean account and make sure you know what's up.

The script can currently list your droplets and domains information and
has a ``ping-domains`` command which sends a test request to all your
domains and checks the response for you.

Built to suit our own needs - which it did - but feel free to propose or
implement new features.

Installation
------------

>From PyPI (recommended):

.. code:: shell

    $ pip install do-audit

With ``git clone``:

.. code:: shell

    $ git clone https://github.com/omni-digital/do-audit
    $ pip install -r do-audit/requirements.txt
    $ cd do-audit/bin

Usage
-----

To use the script you'll need Digital Ocean `access
token <https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2#how-to-generate-a-personal-access-token>`__
and either save it as an environment variable
(``$ export DO_ACCESS_TOKEN='...'``) or pass it explicitly
(``do-audit -t '...'``) with each command. Everything else should be
pretty straightforward:

::

    $ do-audit --help 
    Usage: do-audit [OPTIONS] COMMAND [ARGS]...

      Simple command line interface for doing an audit of your Digital Ocean
      account and making sure you know what's up.

      See https://github.com/omni-digital/do-audit for more info.

    Options:
      -t, --access-token TEXT         Digital Ocean API access token.
      -o, --output-file FILENAME      Output file path.
      -f, --data-format [json|xls|yaml|csv|dbf|tsv|html|latex|xlsx|ods]
                                      Output file dat format.
      -v, --verbose                   Show extra information.
      --help                          Show this message and exit.

    Commands:
      account       Show basic account info
      domains       List your domains
      droplets      List your droplets
      ping-domains  Ping your domains and see what's the response

Examples
--------

The script has four subcommands, all with the same available options:

::

    $ do-audit account
    Email:              user@example.com
    Status:             active
    Droplet limit:      25

Each command has a ``--verbose`` option that shows more information:

::

    $ do-audit account -v
    Email:              user@example.com
    Status:             active
    Droplet limit:      25
    Floating IP limit:  3
    UUID:               uuid

Both ``domains`` and ``droplets`` subcommands work the same way:

::

    $ do-audit droplets
    # ubuntu-512mb-lon1-01 (active)
    OS:                 Ubuntu 16.04.2x 64
    IP:                 192.168.1.0
    CPU:                1
    Memory:             512 MB
    Disk:               20 GB
    URL:                https://cloud.digitalocean.com/droplets/2/graphs
    Created at:         Mon, 05/08/17 12:52:22

    $ do-audit domains
    # example.com
    @                                   A          192.168.0.1
    blog                                A          192.168.0.1

    # example.co.uk
    @                                   A          192.168.0.2
    www                                 A          192.168.0.2

All commands can be exported to a file:

::

    $ do-audit account -o account.csv
    CSV data was successfully exported to 'account.csv'

    $ cat account.csv
    Email,Status,Droplet limit
    user@example.com,active,25

    $ do-audit droplets -o droplets.csv -f json
    JSON data was successfully exported to 'droplets.json'

Tests
-----

Package was tested with the help of ``py.test`` and ``tox`` on Python
2.7, 3.4, 3.5 and 3.6 (see ``tox.ini``).

To run tests yourself you need to run ``tox`` inside the repository:

.. code:: shell

    $ pip install tox
    $ tox

Contributions
-------------

Package source code is available at
`GitHub <https://github.com/omni-digital/do-audit>`__.

Feel free to use, ask, fork, star, report bugs, fix them, suggest
enhancements, add functionality and point out any mistakes. Thanks!

Authors
-------

Developed and maintained by `Omni
Digital <https://omni-digital.co.uk/>`__.

Released under `MIT
License <https://github.com/omni-digital/do-audit/blob/master/LICENSE>`__.

.. |Build status| image:: https://img.shields.io/travis/omni-digital/do-audit.svg
   :target: https://travis-ci.org/omni-digital/do-audit
.. |PyPI version| image:: https://img.shields.io/pypi/v/do-audit.svg
   :target: https://pypi.python.org/pypi/do-audit
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/do-audit.svg
   :target: https://pypi.python.org/pypi/do-audit
.. |License| image:: https://img.shields.io/github/license/omni-digital/do-audit.svg
   :target: https://github.com/omni-digital/do-audit/blob/master/LICENSE