1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances
catborise ffb2ce6bfa fix(instances): destroy and volume delete no longer lose disks
Destroy:
- Stops every active state, not only running; a paused VM used to keep
  running as a transient domain after the undefine.
- Undefines with MANAGED_SAVE and SNAPSHOTS_METADATA, before any disk is
  deleted. A managed-save image used to make the undefine fail after the
  disks were already gone; now a failed undefine deletes nothing.
- Keeps disks that another domain references, directly or as a backing
  file anywhere in its chain (running domains' backingStore, and the
  backingStore of the volumes in the active pools for stopped ones), and
  says so; they used to be deleted with the VM.

Volume delete:
- Detaches from the live domain in every active state, including paused.
- Deletes the volume only after neither the live nor the persistent
  definition has the disk (bounded wait for the guest to release it),
  and refuses a volume another VM references. Otherwise the volume is
  kept and the user is told why.

Both hold the compute exclusively for the usage scan and the deletion,
so another VM cannot attach the disk in between; the destroy
confirmation page (GET) takes no lock.

Live tests reproduce each case on a RHEL qemu-kvm host and fail on the
previous code; unit tests cover the destroy ordering and the locks.
2026-10-04 01:08:11 +03:00
..
api ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
fixtures Instances overhaul 2020-07-13 15:33:09 +06:00
migrations fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
templates fix(instances): change the edited NIC instead of adding a new one 2026-10-04 01:08:11 +03:00
templatetags lint with black python. convert f style strings to old one. some small fixes 2020-11-05 12:34:31 +03:00
__init__.py Fixe migrations for new deployments 2020-05-28 18:19:25 +06:00
apps.py format python code with black 2022-11-02 08:54:35 +03:00
forms.py Corrected untranslated items 2023-12-13 14:00:02 +08:00
livetest.py test(instances): isolate the live libvirt suite on shared hosts 2026-10-04 01:08:11 +03:00
models.py fix(api): typed URLs and accurate response schemas 2026-10-04 01:08:11 +03:00
test_change_network.py fix(instances): change the edited NIC instead of adding a new one 2026-10-04 01:08:11 +03:00
test_clone_permission.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_console_rule.py fix: add an authorization matrix test and close the endpoints it finds 2026-10-02 20:33:12 +03:00
test_console_settings_access.py fix(instances): show console settings and the VNC password only to console managers 2026-10-02 22:04:05 +03:00
test_create_instance.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_destroy.py fix(instances): destroy and volume delete no longer lose disks 2026-10-04 01:08:11 +03:00
test_disk_isolation.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
test_gstfsd.py fix(gstfsd): append SSH keys, IPv6 loopback bind, server-side timeout 2026-10-03 00:02:01 +03:00
test_index.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_live_dataloss.py fix(instances): destroy and volume delete no longer lose disks 2026-10-04 01:08:11 +03:00
test_quota_lock.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_root_pass.py fix(gstfsd): random password salt, timeouts, loopback-only daemon 2026-10-02 22:52:09 +03:00
test_security_mutations.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
test_template_flag.py fix(instances): only superusers and staff may change the template flag 2026-10-02 22:13:46 +03:00
test_xss.py test: inventory HTML sinks in templates, realistic datasource params in the matrix 2026-10-03 00:00:27 +03:00
tests.py test(instances): isolate the live libvirt suite on shared hosts 2026-10-04 01:08:11 +03:00
urls.py fix: add an authorization matrix test and close the endpoints it finds 2026-10-02 20:33:12 +03:00
utils.py fix(instances): do not refuse clones for volume-less disks or unusual names 2026-10-02 23:14:28 +03:00
views.py fix(instances): destroy and volume delete no longer lose disks 2026-10-04 01:08:11 +03:00