IoT-LAB testbed command-line client
Project description
IoT-Lab cli-tools
IoT-LAB cli-tools provide a basic set of operations for managing IoT-LAB experiments from the command-line.
License
IoT-LAB cli-tools, including all examples, code snippets and attached documentation is covered by the CeCILL v2.1 free software licence.
Commands
IoT-LAB cli-tools are available through a shared entrypoint, iotlab, Many subcommands are available:
Command |
Functions |
---|---|
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 |
Optional commands:
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
Description
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
Changelog
3.2.1
Fix bug when load an experiment with only mandatory attributes set
Switch the CI to Github Actions
3.2.0
add SSH key management from iotlab-auth
3.1.1
fix URL used with update-profile command
3.1.0
Add –cancel-on-timeout flag with experiment wait subcommand
3.0.0
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
2.6.0
Manage duplicated firmware name at experiment submission
Add iotlab subcommands (experiment, node, profile, …)
Add autocompletion script
2.5.4
Replace remaining occurences of -cli with iotlab- in commands help
Use new command names in integration tests
2.5.3
Replace remaining occurences of -cli with iotlab-
2.5.2
Revert 2.5.1
2.5.1
Fixing python 3 required version in setup.py
2.5.0
Drop python 2.6 support
Fixing issues raised by pylint 1.8
Deprecate -cli commands and add new iotlab- commands
2.4.2
Bugs
Fix load experiment with mobilities or profiles associations.
2.4.1
Features
Remove archi names validation in AliasNodes association
Internal
Fixing pylint
2.4.0
Features
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
Internal
Refactoring associations management
Reduce maximum McCabe complexity to 4
2.3.0.post1
Same as 2.3.0 but rebased on master branch.
2.3.0
Features
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 experiment
Required for runscript: allows waiting for an user experiment without auth-cli having been run on the server.
Internal
Fixing docstrings
Refactoring internal code and tests
2.0.0
Backward incompatible changes
robot-cli: --status command replaced by status
profile-cli: remove support for mobility in profiles (remove from the api)
Features
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
1.8.0
Features
Add --jmespath and --format options to handle json output
1.8.1: Fix pylint 1.5.0 new warnings
1.7.0
Features
Add ‘debug-start’ and ‘debug-stop’ commands
Bugs
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
1.6.0
Setting the license to CeCILL v2.1
Features
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.
Bugs
Restrict flake8 version due to pep8 incompatibility
Correct auth_parser test that tried external connections
1.5.0
Features
‘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
Bugs
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.0
1.4.1: BUG Force pylint dependency for python2.6
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
File details
Details for the file iotlabcli-3.3.0.tar.gz
.
File metadata
- Download URL: iotlabcli-3.3.0.tar.gz
- Upload date:
- Size: 78.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e481d64f3691adcf5648b1435b203b543922b18a15f484d1a62ae36d22cf7f7e |
|
MD5 | 34221e46d32814faf70f50b6d1e95735 |
|
BLAKE2b-256 | 0d77e8b038ebcdcc1940794938539d4328ada8c3b792dfe474935767fb17d821 |