Hi folks,
The 2019.07 tag has been pushed to master on git.lavasoftware.org. .deb packages have been built in GitLab CI and 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 =======================
Device-types ============
New device-types ----------------
New supported devices: * meson-gxl-s805x-libretech-ac (Amlogic) * meson-gxl-s905d-p230 (Amlogic) * meson-gxl-s905x-p212 (Amlogic) * meson8b-ec100 (Amlogic) * sun50i-h6-pine-h64
ox820-cloudengines-pogoplug-series-3 ------------------------------------
Some ARM defconfig changes made the kernel bigger and the ox820 device cannot boot any more. Update the ramdisk address to **0x61000000** (was **0x60e00000**).
extra_nfsroot_args ------------------
Some device-types (`jetson-tk1`, `juno`, `qcom-qdf2400`, `rzn1d`, `synquacer` and `tc2`) were not allowing the job submitter to set `extra_nfsroot_args` in the job context.
Job submitters can now pass extra nfs rootfs arguments in the job context for these devices.
context: extra_nfsroot_args: ",wsize=65536 nfsrootdebug"
Database ========
Migrations ----------
This new version creates several database migrations: * add `ExtendedUser.table_length` field * add new tables: `GroupDeviceTypePermission` and `GroupDevicePermission` * add custom permissions for Device: `view_device`, `submit_to_device`, `admin_device` * add custom permissions for DeviceType: `view_devicetype`, `submit_to_devicetype`, `admin_devicetype` * remove fields from DeviceType: `owners_only` * remove fields from Device: `user`, `group`, `is_public` * remove fields from TestJob: `user`, `group`, `visibility` * delete table: `DefaultDeviceOwner`
These may incur a small amount of downtime during the upgrade process as database migrations happen. This may take a long time if there is a large number of records in the ``TestJob`` table.
A goal for the LAVA development team is to reduce the frequency of database migrations to reduce this cost as much as possible. This release also includes a data migration and adding new records in the newly created tables so that authorization refactoring does not change any existing user-visible behaviour.
Authorization refactoring =========================
Due to scaling problems with the previous authentication model, the way LAVA controls access to its most important entities (DeviceType, Device and TestJob) has been completely revamped.
Previously, LAVA used flags like `owners_only`, `user`, `group`, `visibility`. On large LAVA installations these were causing significant database overhead. They have now been removed and replaced by a new design. Two new tables have been added: `GroupDeviceTypePermission` and `GroupDevicePermission`. The permission model has been moved to Group based control and administrators can control those through the Django admin interfaces for ``DeviceType`` and ``Device`` records, or via the respective XMLRPC calls. The data migration will convert records across from the old auth model to the new model, keeping equivalent permissions.
The new permission model is inheritable by design so any permissions applied to device types will also be applied to devices belonging to the particular device type, and all permissions applied to a device will be relevant for permissions on test jobs running on that particular device. Further information can be found in the LAVA documentation.
Table size ==========
The LAVA web interface displays a lot of tables. The size of the table is configurable at instance level by the admin since LAVA [2019.06](2019.06). There is a default table length defined in the system.
In this release, users can now also configure the default table length to use when logged in. This can be set by the user in their profile page at `https://<host>/me/`.
Steve, for the LAVA team.
lava-announce@lists.lavasoftware.org