lava-dispatcher-host: move device sharing to a daemon

Attaching BPF programs doesn't really work from withing udev-triggered
processes. I checked that they are executed with uid 0, gid 0, and do
have CAP_SYS_ADMIN, but I couldn't figure out why.

Thus, the device sharing is now done by a separate daemon, and the
process executed by udev simply pokes that daemon to do its job. The
daemon can use systemd socket activation, so it can be autostarted when
needed (i.e. if any client connects to the socket). For development,
just running the daemon directly will also work.
18 jobs for docker-cgroupsv2 in 5 minutes and 7 seconds (queued for 11 seconds)
Status Name Job ID Coverage
  Test
failed dispatcher-debian-10 #140383
amd64

00:02:31

failed dispatcher-debian-11 #140385
amd64

00:02:29

passed server-debian-10 #140384
amd64

00:02:57

passed server-debian-11 #140386
amd64

00:05:05

 
  Analyze
skipped bandit-sast #140387
amd64-dind allowed to fail
skipped black #140390
amd64
skipped code_quality #140391
amd64
skipped codespell #140396
amd64
skipped coverage #140392
amd64
skipped dockerfiles #140393
amd64
skipped eslint-sast #140388
amd64-dind allowed to fail
skipped pylint #140395
amd64
skipped schemas #140394
amd64
skipped semgrep-sast #140389
amd64-dind allowed to fail
 
  Build
skipped debian/10 #140398
amd64
skipped doc #140397
amd64
skipped docker-amd64-dispatcher #140399
amd64-dind
skipped docker-amd64-server #140400
amd64-dind
 
Name Stage Failure
failed
dispatcher-debian-10 Test

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=============== 3 failed, 48 passed, 4 warnings in 1.12 seconds ================
Uploading artifacts for failed job
Uploading artifacts...
WARNING: coordinator.xml: no matching files
ERROR: No files to upload
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
dispatcher-debian-11 Test
=========================== short test summary info ============================
FAILED tests/lava_dispatcher_host/test_docker_devices.py::TestDeviceFilterCGroupsV2::test_apply
=================== 1 failed, 50 passed, 2 warnings in 0.95s ===================
Uploading artifacts for failed job
Uploading artifacts...
WARNING: coordinator.xml: no matching files
ERROR: No files to upload
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1