1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances
catborise c970f8e853 fix(storages): keep volumes a VM still needs
libvirt deletes any volume it is asked to. The storage page and the API
deleted a VM's disk, the base image of another volume or the file a
snapshot was taken on without a check, breaking the VM or its
snapshots.

wvmStorage.del_volume now refuses a volume a domain on the compute uses
as a disk or a backing file of one, a file of a domain's snapshots, or
the backing file of another volume. The check is the one destroy
already used, moved to wvmConnect and extended to snapshot files, so
destroy also keeps the files of another VM's snapshots. The storage
page shows the refusal; the API answers 400 with it, as for other
refusals. Deleting a disk from a VM refuses after the detach when the
VM's own snapshots need the volume, and says the volume was kept.

Network disks count by their source name, pool volume disks by their
volume's path. A volume whose metadata cannot be read stops the check
instead of counting as unused; only one removed meanwhile is skipped.
The check and the delete hold the compute lock, so no VM operation
attaches the volume in between; a busy compute is a message on the page
and 409 in the API.
2026-10-13 09:13:02 +03:00
..
api feat(instances): auto converge is on by default for a live migration 2026-10-06 17:04:03 +03:00
fixtures Instances overhaul 2020-07-13 15:33:09 +06:00
migrations fix(computes): VM ownership survives a move or a short absence 2026-10-04 01:08:11 +03:00
templates feat(instances): external snapshots use libvirt's snapshot API 2026-10-12 15:25:44 +03:00
templatetags fix(instances): every VM state has a label and the actions it allows 2026-10-05 19:34:30 +03:00
tests fix(storages): keep volumes a VM still needs 2026-10-13 09:13:02 +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 fix(instances): only administrators choose where a console listens 2026-10-05 15:07:31 +03:00
models.py fix(instances): snapshot tab reads less and fails less 2026-10-13 08:30:22 +03:00
states.py fix(instances): every VM state has a label and the actions it allows 2026-10-05 19:34:30 +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(migration): remove the NVRAM file a live migration leaves on the source 2026-10-09 07:29:10 +03:00
views.py fix(storages): keep volumes a VM still needs 2026-10-13 09:13:02 +03:00