A client interface to interact with the chacra
service (http://github.com/ceph/chacra).
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.
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.
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.
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