1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-10 04:06:47 +00:00
webvirtcloud/instances/templates/instances
catborise 02412b7ea5 feat(jobs): deleting a VM is a job that recovery finishes
The delete ran in the request: undefine, then the VM's record, then its
disk files. A request that died in between (a gunicorn worker past its
timeout, OOM, a restart), or a database write that failed after the
undefine, left a record that later showed as removed outside the panel,
and the disk files the user asked to delete were never deleted.

Deleting a VM is now an instance.delete job. It holds the compute
exclusively, as the request did, so no other VM attaches a file it is
about to delete. The job chooses the files before it stops the VM (a host
that cannot be checked still stops nothing) and records them first. It
then stops and undefines the VM, removes its record, and deletes the
files, each with its own Logs row. Recovery decides from libvirt: a VM
still on its host means the delete failed; a VM gone means libvirt did
it, so recovery removes the record and deletes the recorded files that
are still there.

The page queues the job and returns to the VM page, where the job panel
follows it and opens the VM list when it ends; disks that were kept are
the result's warning. The API's delete answers 202 with the job and
needs a submission_key. backing_path moves to wvmConnect, as recovery
has no domain to ask.
2026-11-06 09:49:31 +03:00
..
access_tab.html feat(instances): the Access tab splits the VM's screen from root's login 2026-11-03 20:39:40 +03:00
boot_device.html feat(instances): the Boot tab shows the boot order as the chain the VM tries 2026-11-03 19:48:52 +03:00
destroy_instance_form.html feat(jobs): deleting a VM is a job that recovery finishes 2026-11-06 09:49:31 +03:00
destroy_tab.html feat(instances): a VM's destruction says what goes, and keeps what a kept file needs 2026-10-30 22:19:31 +03:00
edit_instance_volume.html style(instances): the Disks tab's secondary buttons are outlined 2026-11-04 10:47:55 +03:00
form_errors.html fix(instances): a refused VM create form comes back with what was entered 2026-10-20 08:12:25 +03:00
host_devices_form.html feat(instances): PCI devices hot-plugged into a running VM 2026-10-29 14:54:36 +03:00
host_link.html feat(instances): the top of a VM's page in one card 2026-10-29 22:46:24 +03:00
info_tab.html refactor(instances): the VM page's scripts load from static files 2026-11-02 09:04:29 +03:00
migrate_plan.html style(instances): the Migrate tab sets the switches that can lose data apart 2026-11-04 13:56:17 +03:00
move_disk.html style(instances): the Disks tab's secondary buttons are outlined 2026-11-04 10:47:55 +03:00
nic_qos_form.html fix(locale): the VM page's and Settings page's messages show translated 2026-11-02 23:09:05 +03:00
power_tab.html feat(instances): the Power tab shows the VM's state and where each action takes it 2026-11-03 19:22:52 +03:00
resize_tab.html feat(instances): the Resize tab shows how much a VM has within its maximum 2026-11-03 23:07:59 +03:00
settings_tab.html style(instances): the Console tab asks for a new password only with "Set a new one" 2026-11-04 15:15:12 +03:00
snapshots_tab.html feat(instances): the Snapshots tab shows the VM's history as a line 2026-11-04 08:59:50 +03:00
stats_tab.html refactor(instances): the VM page's scripts load from static files 2026-11-02 09:04:29 +03:00
vm_states_poll.html refactor(templates): the shared page scripts load from static files 2026-11-02 08:47:58 +03:00