Metadata-Version: 2.1
Name: iotlabcli
Version: 3.1.0
Summary: IoT-LAB testbed command-line client
Home-page: http://www.iot-lab.info
Author: IoT-LAB Team
Author-email: admin@iot-lab.info
License: CeCILL v2.1
Download-URL: http://github.com/iot-lab/cli-tools/
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Intended Audience :: End Users/Desktop
Classifier: Environment :: Console
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Requires-Dist: requests (>2.4.2)
Requires-Dist: jmespath
Provides-Extra: secure
Requires-Dist: pyOpenSSL ; extra == 'secure'
Requires-Dist: ndg-httpsclient ; extra == 'secure'
Requires-Dist: pyasn1 ; extra == 'secure'

IoT-Lab cli-tools
=================

|PyPI| |Travis| |Codecov|

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 <https://github.com/iot-lab/ssh-cli-tools>`_ is installed:

+------------------------------+----------------------------------------------------------------------------------------+
| ``iotlab ssh``               | run commands on A8 open nodes through SSH                                              |
+------------------------------+----------------------------------------------------------------------------------------+

When `IoT-Lab OML plot Tools <https://github.com/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 <https://github.com/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

.. |PyPI| image:: https://badge.fury.io/py/iotlabcli.svg
   :target: https://badge.fury.io/py/iotlabcli
   :alt: PyPI package status

.. |Travis| image:: https://travis-ci.org/iot-lab/cli-tools.svg?branch=master
   :target: https://travis-ci.org/iot-lab/cli-tools
   :alt: Travis build status

.. |Codecov| image:: https://codecov.io/gh/iot-lab/cli-tools/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/iot-lab/cli-tools/branch/master
   :alt: Codecov coverage status


Changelog
=========

3.0.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



