tango system cli manager
Project description
A CLI built for Tango system administrators.
tangoctl aims to be to Tango what systemctl is to to systemd.
Actions speak louder than words. Here is a video:
Purpose
on day to day Tango maintenance
to help automate ansible, puppet or chef scripts
to prepare automated test scripts for your own software
to help write a custom bash completion for your tool
Features
server operations:
server info
tree of servers
list of servers
register/unregister servers
device operations:
device info
tree of devices
list of devices
register/unregister devices
execute commands
command info
read and write attributes
attribute info
read and write properties
Installation
pip install it on your favorite python environment:
$ pip install tangoctl
That’s it!
Examples
# Display tree of servers:
tangoctl server tree
# Display list of devices:
tangoctl device list
# Read 'state' attribute from a device
tangoctl device attribute read -d sys/tg_test/1 -a state
# Execute command Init() on a device
tangoctl device command exec -d sys/tg_test/1 -c init
# Display 'double_spectrum' attribute information
tangoctl device attribute info -d sys/tg_test/1 -a double_spectrum
# Display list of device attributes:
tangoctl device attribute list -d sys/tg_test/1
Writting a custom bash completion for your server
Imagine you have a Tango server called LimaCCDs and you registered two instances in the database, maybe using tangoctl:
tangoctl server add LimaCCDs/basler1 -d id00/limaccds/basler1
tangoctl server add LimaCCDs/pilatus1 -d id00/limaccds/pilatus1
To have bash auto-complete every time you type LimaCCDs [tab] on the command line, place the following lines in a bash script:
# naive tango server autocomplete using tangoctl server ilist
_tango_server_complete()
{
stype="${COMP_WORDS[0]}"
sname="${COMP_WORDS[COMP_CWORD]}"
echo $stype
COMPREPLY=( $(tangoctl server ilist -t "${stype}" --filter="${sname}*") )
return 0
}
complete -F _tango_server_complete Demo
and run it. Next time you type LimaCCDs [tab] on the bash command line it will offer the existing LimaCCDs instances as completion options:
LimaCCDs [tab]
basler1 pilatus1
LimaCCDs pil[tab]
pilatus1
Check the bash completion documentation on how to add it permanently to your environment.
Special thanks to
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tangoctl-0.2.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd53c691c25300504df60c8466732ef1d7cdc87977ac1696875aa2d84f067e64 |
|
MD5 | e9e7540947a0cd4df1125c13b6d9b09b |
|
BLAKE2b-256 | 81c3f7034c5630522da4fb4a682b970f84cbf937b37e75294eb15a9314ac2ab6 |