- check-package parses arguments with a loop: --install can appear
before or after the path, extra arguments are rejected, and an
explicitly named missing package is reported as such.
- --install also asserts the installed services are enabled and active,
checks both lqosd and liblqos_python.so for missing libraries, and
imports liblqos_python with the installed venv.
- LQOS_SKIP_PREREQS still applies the /usr/sbin PATH fix, and the flag is
documented in the helper and the unsupported-distribution message.
- Both image downloads share one download_verified helper.
- test-lifecycle uses wait_for_guest_ready, and lab_ssh/lab_scp bound
stalled sessions with keepalives.
- Drop the two serde-defaulted UISP fixture keys, fix the remaining
Spanish line, and correct the src/rust README path.
- Record the remaining follow-ups in the plan.
- check-package asserts the .deb control fields against the expected
dependency and recommends entries, so reverting the Debian dependency
fix fails the check.
- check-package --install installs the .deb in the running guest and
verifies the postinst results: dpkg state, installed unit, venv, and
no missing shared libraries.
- Guest image facts (URL, checksum, tool, os-variant, expected
os-release) come from one guest_os_facts helper; lab and the harness
assertions share it.
- up records the guest OS choice too, so later commands cannot disagree
with the running lab.
- wait_for_cloud_init is bounded with a guest-side timeout.
- Prerequisite extras install one package at a time so a missing
kernel-pinned linux-tools package cannot block bpftool.
- Docs: renumber the update lists, fix the Spanish phrasing in the
orphan update page, align the orphan troubleshooting page, and drop
the repeated drift rationale from the front-end headers.
- ensure_lab_stopped() returned the status of its last 'a && die' list,
so 'lab up' exited silently on a clean host. Use if/then instead.
- management_ip() trusted stale DHCP leases from a previous lab, which
pointed configure at the wrong guests. Ignore expired leases and pick
the newest active one.
- Wait for cloud-init to finish on the Linux guests; package installs
were still running when configure started.
- Pin the Debian generic image instead of genericcloud: the cloud kernel
disables CONFIG_PPP, so the PPPoE client cannot run.
- Record the guest OS choice in images/guest-os so later commands reuse
it, and use one checksum helper for guest and RouterOS downloads.
- Assert the guest OS matches the requested one and that lqosd pinned
/sys/fs/bpf/map_ip_to_cpu_and_tc.
- Add 'lab check-package', which validates .deb dependency resolution
inside the running guest.
- Bring the harness config fixture up to the current schema; it was
missing the [uisp_integration] section.
LAB_GUEST_OS selects the Linux guest image: ubuntu (default) or debian.
The Debian image is pinned to a date-stamped trixie genericcloud build
with its SHA-512 from SHA512SUMS, and virt-install --os-variant is
derived from the guest OS with a LAB_OS_VARIANT override for hosts whose
osinfo database does not know debian13.
user-data installs libelf1t64, which is the current package name on both
Ubuntu 24.04 and Debian 13.