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.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cbdd461b01326946a4fe46d33cad2aa8146e87f68b6f0184a10e262bce07bbf |
|
MD5 | bdde272f4821b1f8deffb7f61b70a639 |
|
BLAKE2b-256 | cfdcb3625330585c6136a8b68db8f65d22090c5ac3954ce0ee5f73b2c9159da9 |