1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00
webvirtcloud/vrtManager
catborise c7a7c843fb fix(vrtManager): a shut-off VM with NVRAM or TPM state is not migrated
libvirt keeps a VM's UEFI variables (NVRAM) and emulated TPM state in
files of its host. A live migration carries both: on the test hosts
(libvirt 11.10, QEMU 10.1) the destination got the same NVRAM content
once the VM ran and the same TPM state, and the source TPM state was
removed. Moving a shut-off VM moves only its definition, so neither
went along: on its first start on the destination libvirt made a new
NVRAM from the template and a new TPM. Boot entries and enrolled keys
are lost, and disks sealed to the TPM no longer unlock.

A shut-off VM whose definition has an NVRAM file or an emulated TPM is
now refused before anything changes: "Start the VM and migrate it
live." A passthrough or external TPM keeps no state on the host and
still moves. The check sits in moveto, not in the define/undefine
workaround, as libvirt's own offline migration does not carry the files
either. The keep-NVRAM and keep-TPM undefine flags of that workaround
are gone, as no VM that needs them reaches it.

Checked on the test hosts: a shut-off UEFI VM with a TPM is refused and
stays on the source with nothing defined on the destination; the same
VM migrates live. The new tests fail on the previous code.
2026-10-06 21:02:58 +03:00
..
__init__.py Initial commit 2015-02-27 10:53:51 +02:00
connection.py fix: connection errors on VM actions name the host only to administrators 2026-10-06 10:08:48 +03:00
create.py fix(instances): CD-ROM bus, USB controller and MACs of a new VM 2026-10-04 18:33:28 +03:00
hostdetails.py fix cpu_usage waiting for instance creation. 2023-05-18 14:35:19 +03:00
instance.py fix(vrtManager): a shut-off VM with NVRAM or TPM state is not migrated 2026-10-06 21:02:58 +03:00
interface.py fix(interfaces): validate IPv6 address and gateway of host interfaces 2026-10-04 17:29:59 +03:00
libvirt-ssh fix(vrtManager): libvirt connections open within a time limit 2026-10-05 09:06:52 +03:00
network.py fix(vrtManager): request values are not written into XPath expressions 2026-10-06 08:55:41 +03:00
nwfilters.py fix(vrtManager): request values are not written into XPath expressions 2026-10-06 08:55:41 +03:00
rwlock.py fix(vrtManager): modernize rwlock for Python 3.12 compatibility and add tests 2026-09-24 21:49:52 +03:00
storage.py Detect RDB pools too 2025-03-14 10:31:40 +01:00
test_change_network.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_connection.py fix(vrtManager): the libvirt event loop starts per process, on first use 2026-10-05 14:41:31 +03:00
test_console_setters.py feat(console): VNC is the only console type 2026-10-04 01:08:11 +03:00
test_iso_media.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_live_connection.py fix(vrtManager): libvirt connections open within a time limit 2026-10-05 09:06:52 +03:00
test_migration.py fix(vrtManager): a shut-off VM with NVRAM or TPM state is not migrated 2026-10-06 21:02:58 +03:00
test_network_ip.py test: expand unit test coverage across admin, accounts, vrtManager, logs, appsettings, and datasource 2026-09-25 11:26:53 +03:00
test_persistent_edits.py fix(instances): disk and agent channel changes on paused VMs 2026-10-04 17:10:49 +03:00
test_read_cache.py perf(instances): the VM page reads each kind of domain XML once 2026-10-05 21:24:07 +03:00
test_resize_disk.py fix(instances): domain edits start from the persistent definition 2026-10-04 01:08:11 +03:00
test_rwlock.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
test_usage.py perf(instances): VM statistics sample all devices in one second 2026-10-05 15:27:55 +03:00
test_util.py fix(instances): CD-ROM bus, USB controller and MACs of a new VM 2026-10-04 18:33:28 +03:00
test_xml_safety.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_xpath_values.py fix(vrtManager): request values are not written into XPath expressions 2026-10-06 08:55:41 +03:00
util.py fix: connection errors on VM actions name the host only to administrators 2026-10-06 10:08:48 +03:00
virtsecrets.py Django 3.2.4 LTS upgrade 2021-06-15 13:28:47 +03:00