Metadata-Version: 2.4
Name: laam
Version: 0.11.0
Summary: LAA remote control
Keywords: DUT,Embedded system,LAA
Author-email: Rémi Duraffort <remi.duraffort@linaro.org>
Maintainer-email: Rémi Duraffort <remi.duraffort@linaro.org>
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Terminals :: Serial
License-File: LICENSE
Requires-Dist: aiohttp>=3.14.1
Requires-Dist: mcp>=1.27.2,<2
Requires-Dist: pexpect>=4.9
Requires-Dist: pydantic>=2.13.4
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: requests>=2.34.2
Requires-Dist: requests-toolbelt>=1
Requires-Dist: websocket-client
Requires-Dist: yarl>=1.24.2
Project-URL: Documentation, https://docs.lavacloud.io
Project-URL: Homepage, https://lavacloud.io
Project-URL: Issues, https://gitlab.com/Linaro/lava/appliance/laam/-/issues
Project-URL: Repository, https://gitlab.com/Linaro/lava/appliance/laam

# laam

The **laam (LAA Manager)** is a python application that allows to interact with the LAA REST API via console or in python scripts.

## Requirements

You must be [connected](https://docs.lavacloud.io/guides/connectivity.html) to the same network as the LAA and able to see its local webserver

Optionally you can install [uv](https://docs.astral.sh/uv/) which manages dependencies automatically.
laam has been created with uv, the dependencies are listed in **pyproject.toml**

## Installation

You can install laam via [PyPI](https://pypi.org/project/laam/), just open a console and run:

    pip install laam

You can install laam also via [GitLab](https://gitlab.com/Linaro/lava/appliance/laam) if you want to use the latest "dev version".

    git clone git@gitlab.com:Linaro/lava/appliance/laam.git
    cd laam
    pip install -e .

You can run laam from source. In this case, you'll have to adapt all your laam commands in this way:

    cd <path>/laam
    uv run laam --version

Remember to also adapt all the files path appropriately.

## Quick Tests

You can quickly test laam by opening a random bash and checking the version.

    laam --version

You can test a simple interaction between laam and the LAA with the files command.

    laam -i <laa-XXX> files list

If the LAA is new the working folder is empty and you'll get no elements back. But the request should succeed without any errors.

In order to work check the **Requirements**

To run the full test suite against the built-in mock appliance:

    uv run --dev -- pytest tests

The mock server listens on port **8080** by default. Override it with `LAAM_MOCK_PORT`:

    LAAM_MOCK_PORT=8181 uv run --dev -- pytest tests

## Configuration

You'll have to create an LAA identity for [laam](https://docs.lavacloud.io/software/laam_console.html#configuration)

## Documentation

In out documentation webpage you can find:
- [info on the console commands](https://docs.lavacloud.io/software/laam_console.html)
- [how to easily use laam in a python3 scripts](https://docs.lavacloud.io/software/laam_python.html)

## Contributing

Contributions, bug reports and feature requests are welcome!
Please see the [issues](https://gitlab.com/Linaro/lava/appliance/laam/-/issues)
or open a [merge request](https://gitlab.com/Linaro/lava/appliance/laam/-/merge_requests).

