Python 3 is required. For OS X users use brew install python3
.
You may either install or upgrade to all users:
sudo pip3 install -U conductr-cli
... or, and if you’re not using brew (there’s a problem with user installs as of the time writing this), install to the current user (make sure to have ~/.local/bin
in your PATH):
pip3 install -U --user conductr-cli
Build a docker image for building a deb package:
docker build -t debian-distribution deb_dist/
Run built docker image:
docker run -v $(pwd):/source debian-distribution
Install built deb package:
dpkg -i deb_dist/python3-conductr-cli_0.1-1_all.deb
Install required dependencies:
apt-get install -f
If you have installed argcomplete and want to activate Bash completion for the CLI, you have to execute the following, either transiently in your terminal session or more permanently in your .bashrc
or .bash_profile
:
eval "$(register-python-argcomplete conduct)"
Alternatively, if you have a Bash version 4.2 or later, you can activate global completion once:
activate-global-python-argcomplete --dest=/path/to/bash_completion.d
If you are running zsh, execute the following command to enable autocomplete:
autoload bashcompinit && autoload compinit && bashcompinit && compinit && eval "$(register-python-argcomplete conduct)"
Execute the following command to run all defined tests:
python3 setup.py test
To run only a specific test case in a test suite:
python3 setup.py test -a "-- -s conductr_cli.test.test_conduct_unload:TestConductUnloadCommand.test_failure_invalid_address"
CLI releases can be performed completely from the GitHub project page. Follow these steps to cut a release:
- Edit conductr_cli/__init__.py file to contain the version to be released.
- Create a new release in GitHub releases page.
After CI build is finished for the tagged commit, new version will automatically be deployed to PyPi repository.
Execute conduct
with any of the supported sub-commands or options,
e.g.
$ conduct -h
usage: conduct.py [-h]
{version,info,services,load,run,stop,unload,events,logs} ...
optional arguments:
-h, --help show this help message and exit
subcommands:
valid subcommands
{version,info,services,load,run,stop,unload,events,logs}
help for subcommands
version print version
info print bundle information
services print service information
load load a bundle
run run a bundle
stop stop a bundle
unload unload a bundle
events show bundle events
logs show bundle logs
Most sub-commands connect to a ConductR instance and therefore you have to specify its IP and port; if not given, CONDUCTR_IP
environment variable or 127.0.0.1
will be used for the IP and CONDUCTR_PORT
or 9005
for the port. Alternatively you can specify the IP via the --ip
option and the port via the --port
option.
The commands provided via CLI uses version 1.0 of the ConductR API by default. When working with version 1.1 of ConductR, set the CONDUCTR_API_VERSION
environment variable to 1.1
. Alternatively you can specify the API version via the --api-version
option.
Here’s an example for loading a bundle:
conduct load sbt-conductr-tester-1.0.0-e172570d3c0fb11f4f9dbb8de519df58dcb490799f525bab43757f291e1d104d.zip
Note that when specifying IPV6 addresses then you must surround them with square brackets e.g.:
conduct info --ip [fe80:0000:0000:0000:0cb3:e2ff:fe74:902d]
The shazar
command can be used:
- for packaging a directory that has a structure of a bundle to a bundle archive;
- for packaging a bundle’s configuration to a bundle archive;
In both cases the source files are zipped and a SHA256 digest of the archive is appended to the bundle archive file name.
For pointers on command usage run shazar -h
.
If you want to run conduct
locally, i.e. without installation, cd
into the project directory and execute:
python3 -m conductr_cli.conduct
Make sure to install the necessary dependencies:
pip install -e .