``chacractl``
-------------
A client interface to interact with the ``chacra`` service
(http://github.com/ceph/chacra).


configuration
-------------
The client writes a configuration file at ``$HOME/.chacractl`` with some needed
information::

    # This file was automatically generated by the chacractl CLI
    # make sure to update it with the correct user and key to talk to the API

    url = "http://example/"
    user = "admin"
    key = "secret"

These values need to be modified so that the CLI can interact with the remote
API.

binaries
--------
The CLI allows for a few interactions with binaries, depending on the action
needed the requirements may change. For example when trying to upload a binary,
the tool can accept either ``stdin`` or an actual file input.

create
^^^^^^
For POSTing a binary, if posting a single binary it is best to just pass the
full path as the last argument to the ``binary`` subcommand::

    chacractl binary create project/ref/distro/distro-version/arch /path/to/binary.rpm

But for convenience, if sending many files, it can also accept them from stdin,
usually with the output of a ``find`` command that can be filtered with
``grep`` or similar.

Below is an example of such a command for a project like ``ceph-deploy``::

    find ~/repos | grep ceph-deploy | grep rpm | grep noarch | grep el6
    | chacractl binary create ceph-deploy/master/centos/6/noarch


If a binary already exists and there is a need to re-upload it, the ``--force``
flag must be used. In that case the request will be a ``PUT`` and the resource
will be overwritten in the API.

exists
------
Check whether a given url endpoint exists or not. This subcommand requires the
full url part (as opposed to other subcommands that require the url starting
from the project name)::

    chacractl exists repos/ceph-deploy/master/centos/7

If the endpoint is not found it will return a non-zero exit status
