Hi folks,
The 2020.06 tag has been pushed to master on git.lavasoftware.org. .deb packages have been built in GitLab CI and are published at
https://apt.lavasoftware.org/release
Docker images for amd64 and arm64 have been built in GitLab CI and are available from
and
https://hub.docker.com/u/lavasoftware
Changes in this release =================
Upgrading =========
Database migrations -------------------
A new `is_synced` field as been added to the `Device` model. The field will be used to know when a given device is managed by `lava-server manage sync` command or is managed manually.
Device-types ============
New device-types ----------------
New supported devices:
* d2500cc * imx6qp-wandboard-revd1
Device management =================
```shell lava-server manage sync ```
LAVA can now synchronize database records with the device dictionary via this management command. It currently supports these models:
* Device * Device type * Tag * Alias
This can make administration less cumbersome and can help with Ansible and similar setups. By using this feature administrators are able to keep the list of these records inside the version control.
For device records, a flag named **is_synced** is used to recognize devices which are synced to/from the device dictionary. This option can be updated via usual channels (web UI admin, APIs) and will be automatically set to True for newly added device via this method.
Example device dictionary snippet:
```jinja {% set sync_to_lava = { "device_type": "qemu", "worker": "worker-01" "tags": ["tag1", "tag2"], "aliases": ["alias1", "alias2"], } %} ```
Scheduler =========
Fix multinode scheduling. The scheduler was expecting ids of jobs in a multinode group to be consecutive.
This is not guaranteed and was leading to a dead lock when scheduling interleaved multinode jobs.
`command` action ================
The [command]( https://lava.readthedocs.io/en/latest/technical-references/job-definition/ac...) action can now run recovery commands `recovery_mode` and `recovery_off`:
```yaml actions: - command: name: recovery_off ```
Auto login ==========
The auto-login action is now able to retry on failed login. This can happen when the kernel print some stack trace while booting.
Connection closed =================
LAVA is now able to detect when the connection is closed by the DUT. When retrying to boot the DUT, LAVA will automatically reconnect to the DUT.
The `minimal` boot action has been updated to detect such event and mark the job as `incomplete`.
Documentation =============
The documentation work is progressing with some new pages added. The work-in-progress documentation is visible on [read the doc]( https://lava.readthedocs.io/).
Test job log ============
Prior to this release, LAVA would always store test job logs on the filesystem in `/var/lib/lava-server/default/media/job-output/<year>/<month>/<day>/<id>`.
In release [2020.05](2020.05), the support for mongodb was added.
Elasticsearch -------------
The support for [Elasticsearch](https://www.elastic.co) was added in this release.
To use elastic search to store the logs, admin should update the configuration:
```yaml LAVA_LOG_BACKEND: "lava_scheduler_app.logutils.LogsElasticsearch" ELASTICSEARCH_URI: "<URI|http://localhost:9200/%3E" ELASTICSEARCH_INDEX: "<INDEX_NAME|lava-logs>" ELASTICSEARCH_APIKEY: "<API_KEY>" ```
Firestore ---------
The support of [Firestore](https://firebase.google.com/docs/firestore/) was added in this release.
Admin should update the configuration:
```yaml LAVA_LOG_BACKEND: "lava_scheduler_app.logutils.LogsFirestore" ```
In the environment, `GOOGLE_APPLICATION_CREDENTIALS` should point to the google cloud credentials.
Thanks