IoT-LAB testbed command-line client
IoT-LAB cli-tools provide a basic set of operations for managing IoT-LAB experiments from the command-line.
IoT-LAB cli-tools, including all examples, code snippets and attached documentation is covered by the CeCILL v2.1 free software licence.
IoT-LAB cli-tools are available through a shared entrypoint, iotlab, Many subcommands are available:
|iotlab auth||configure account credentials|
|iotlab experiment||start, stop, query experiments|
|iotlab node||start, stop, reset nodes, update firmwares|
|iotlab profile||manage nodes configurations|
|iotlab robot||manage robot nodes|
|iotlab status||manage informations about testbed sites, nodes and running experiments|
When IoT-Lab SSH CLI Tools is installed:
|iotlab ssh||run commands on A8 open nodes through SSH|
When IoT-Lab OML plot Tools is installed:
|iotlab plot traj||plot robot trajectory|
|iotlab plot consum||plot node consumption|
|iotlab plot radio||plot node sniffer results|
When IoT-Lab Aggregation Tools is installed:
|iotlab serial||aggregate node serial link|
|iotlab sniffer||aggregate node sniffer link|
Commands are self-documented, and usually have sub-commands which are also self-documented. Use e.g:
iotlab-node --help iotlab-profile add --help
The cli-tools leverage the IoT-LAB REST API and simply wrap calls to module iotlabcli, which is a Python client for the API.
The cli-tools come as an installable Python package and require that module setuptools be installed before tools installation can happen. Please grab the relevant python-setuptools package for your distribution.
To install cli-tools from Pypi, use pip install iotlabcli.
To install cli-tools from source, use pip install --user . or python setup.py install
Installing cli-tools automatically fetches additional dependencies as needed.
Further documentation: https://github.com/iot-lab/iot-lab/wiki/CLI-Tools
- fix URL used with update-profile command
- Add –cancel-on-timeout flag with experiment wait subcommand
- Migrate the new IoT-LAB REST API (https://api.iot-lab.info)
- Add iotlab-status command
- Add support for flashing firmware in raw format with .bin extension
- Remove the iotlab-admin command
- Manage duplicated firmware name at experiment submission
- Add iotlab subcommands (experiment, node, profile, …)
- Add autocompletion script
- Replace remaining occurences of -cli with iotlab- in commands help
- Use new command names in integration tests
- Replace remaining occurences of -cli with iotlab-
- Revert 2.5.1
- Fixing python 3 required version in setup.py
- Drop python 2.6 support
- Fixing issues raised by pylint 1.8
- Deprecate -cli commands and add new iotlab- commands
- Fix load experiment with mobilities or profiles associations.
- Remove archi names validation in AliasNodes association
- Fixing pylint
- Add script execution management at submit and during experiment
- Add node update-idle command to update firmware with an idle firmware.
- Add node profile-load command to update profile from a JSON.
- Add node profile-reset command to update profile with the default one.
- Allow restricting output by archi and state in experiment-cli info
- Allow restricting by archi for profile-cli get
- Allow providing -l multiples times for experiment-cli load
- Remove parser archi names validation, prepare for adding new ones.
- Add dedicated help commands for --list and --site-association options
- Update for Pypi
- README and CHANGELOG to reStructuredText
- Set long_description in setup.py
- Refactoring associations management
- Reduce maximum McCabe complexity to 4
Same as 2.3.0 but rebased on master branch.
- Add a ‘get –experiments’ command to get a summary of active experiments ids.
- Add support to reload experiment by ‘id’ (as on the website)
- Add an admin-cli script with a command to wait for any user
- Required for runscript: allows waiting for an user experiment without auth-cli having been run on the server.
- Fixing docstrings
- Refactoring internal code and tests
Backward incompatible changes
- robot-cli: --status command replaced by status
- profile-cli: remove support for mobility in profiles (remove from the api)
- New architectures: add support for ‘custom’ and ‘des’ nodes
- experiment-cli submit: add named arguments and associations support:
--list grenoble,m3,1,tutorial.elf,consumption # equivalent to --list grenoble,m3,1,profile=consumption,firmware=tutorial.elf # Specifying robot mobility to 'Jhall' --list grenoble,m3,381,mobility=Jhall
robot-cli: add new commands
status: get robot status get –list: list user mobilities get –name NAME,SITE: get given mobility JSON update NAME,SITE: update robots with given mobility
rest: add commands to download map and configuration (for oml-plot-tools)
2.1.0: Add a context manager for missing auth-cli
2.2.0: Add ‘custom’ nodes profile creation in profile-cli
2.2.1: Officially support python3.5, fix broken test and cleanup tox.ini
- Add --jmespath and --format options to handle json output
- 1.8.1: Fix pylint 1.5.0 new warnings
- Add ‘debug-start’ and ‘debug-stop’ commands
- Fix how home directory is found.
- Force ‘mock’ version to stay compatible with python2.6
- Fix integration ‘tox’ command to have a correct coverage output.
- 1.7.1: Add dependency on ‘urllib3[secure]’ to fix ssl connections security
- 1.7.2: Catch BrokenPipe errors when printing results
Setting the license to CeCILL v2.1
- Add an update-profile command to node-cli to change monitoring profile
- Add a robot-cli script to interract with the robot. Provides a --status to query the robot internal status.
- Move experiment node selection to parser.common.. May break external softwares using internal api.
- Restrict flake8 version due to pep8 incompatibility
- Correct auth_parser test that tried external connections
- ‘sniffer’ option in profile m3/a8
- ‘profile-cli’ commands now return a json dict
- Nicely catch rest HTTPError for Access Denied 401
- Check credentials for auth-cli with the server
- Fix load profile
- Unicode management in python3
- Help messages
- Python3 crash without command for exp-cli
- 1.5.1: Add ‘experiment-cli get –start-time’ command
- 1.5.2: BUG: Add dependency on request >= 2.4.2 for ‘json’ upload parameter
- 1.5.3: Move test dependencies to tests_require
- 1.5.4: Catch ‘request’ exception for old version and raise as RuntimeError
- 1.5.5: Custom api url file has now priority over env variable. Print when using alternate api url.
- 1.5.6: Cleanup setup.py and tests
- 1.4.1: BUG Force pylint dependency for python2.6
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size iotlabcli-3.1.1-py3-none-any.whl (113.1 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size iotlabcli-3.1.1.tar.gz (74.8 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for iotlabcli-3.1.1-py3-none-any.whl