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