1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-09 03:36:48 +00:00
webvirtcloud/instances/tests
catborise 7f8e5cd618 feat(instances): move a VM's disk to another storage pool of its host
The Disks tab has a Move button for each disk: it opens a dialog to
choose another storage pool of the same host, and the move runs as a job.

- Running or paused VM: libvirt copies the disk with a block job
  (TRANSIENT_JOB, as the VM is persistent) into a file it creates in the
  pool, then pivots. The pivot names the copy in both the running and
  the next start's definition.
- Shut-off VM: the volume is copied into the pool and the copy named in
  the definition.

The source file goes then, unless a VM or volume of any compute uses it
(shared storage holds it for every host that mounts it), a compute
cannot be read, or the delete fails: the job lists such a file under
"Left behind", and the move stands.

A disk moves when:
- the VM is defined and running, paused or shut off, without snapshots,
  a saved state or a block job;
- the disk is a writable, unshared, unencrypted raw or qcow2 file of a
  storage pool, without a backing file, and the same file in both
  definitions;
- the pool keeps disk files, is another directory, and has no file of
  that name (libvirt would write into it).
Otherwise it is refused with the reason before anything changes.

The job claims the VM and the file's name in both pools. A cancel aborts
the block copy, and ends the job cancelled once the VM is back on its
file. A failed move deletes the copy it made, unless a definition names
it (a lost reply after the pivot); a file there before the copy began is
never deleted. Recovery after a stopped worker
ends a copy left mirroring, matched by its destination, and reads the
outcome from the definitions.

Superusers only, like the other disk edits.
2026-10-29 21:30:26 +03:00
..
js feat(interfaces): the interface pages on Bootstrap's cards, tables and dialogs 2026-10-29 10:09:52 +03:00
__init__.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
create_page.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
livetest.py docs: a running VM can be cloned 2026-10-16 16:52:38 +03:00
test_addresses.py fix(instances): the IP search asks a guest agent with a timeout 2026-10-25 16:15:18 +03:00
test_api_parity.py fix(api): VM API answers as the VM pages do 2026-10-26 17:47:18 +03:00
test_audit_rows.py feat(logs): every VM operation writes an audit row the VM's Logs tab finds by UUID 2026-10-24 14:14:53 +03:00
test_change_network.py fix(instances): boot order, root password and NIC changes say what they did 2026-10-26 13:49:37 +03:00
test_change_xml.py fix(instances): the XML dialog keeps the edit and defines only this VM 2026-10-24 20:03:20 +03:00
test_clone_disks.py feat(instances): VM clone runs as a job 2026-10-15 09:28:43 +03:00
test_clone_job.py feat(instances): a running VM can be cloned 2026-10-16 16:52:38 +03:00
test_clone_permission.py feat(instances): VM clone runs as a job 2026-10-15 09:28:43 +03:00
test_cloud_init_create.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_console_listener.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_console_rule.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_console_settings_access.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_cpu_mode.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_create_dialog_cpu.py feat(instances): the new-VM dialog shows what each host has given its VMs 2026-10-25 13:13:40 +03:00
test_create_form_input.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_create_instance.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_create_job.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_create_page_js.py fix(instances): a dependent list on the create pages shows only the latest choice 2026-10-24 12:22:46 +03:00
test_create_rollback.py fix(instances): a new VM's CPU is a mode or a model the host offers, checked by libvirt 2026-10-29 11:17:38 +03:00
test_create_wizard_url.py fix(instances): a dependent list on the create pages shows only the latest choice 2026-10-24 12:22:46 +03:00
test_destroy.py fix(api): VM API answers as the VM pages do 2026-10-26 17:47:18 +03:00
test_detail_reads.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_detail_unreachable.py feat(operations): jobs page 2026-10-14 23:27:57 +03:00
test_disk_isolation.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_disk_move_job.py feat(instances): move a VM's disk to another storage pool of its host 2026-10-29 21:30:26 +03:00
test_drbd_target.py fix(instances): a VM's DRBD status counts only its own resources 2026-10-26 13:49:37 +03:00
test_error_handling.py feat(instances): the XML editor shows a change before saving it 2026-10-24 19:40:46 +03:00
test_find_address.py feat(instances): the address search finds a VM by its MAC address too 2026-10-24 22:45:47 +03:00
test_find_address_js.py fix(instances): the address search shows host names as they are 2026-10-25 21:33:41 +03:00
test_gstfsd.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_host_devices.py feat(instances): PCI devices hot-plugged into a running VM 2026-10-29 14:54:36 +03:00
test_index.py feat(tables): tables sort with tablesort, the grouped VM list within each host 2026-10-24 19:02:51 +03:00
test_index_host_alerts.py fix(instances): VM list columns, hosts for viewers, flavor units 2026-10-26 16:14:37 +03:00
test_list_rpc.py fix(instances): the VM list searches its VMs, collapses its hosts together and says when it is empty 2026-10-27 22:40:49 +03:00
test_list_unreachable.py feat(instances): the VM list on Bootstrap's pills, badges and menus, its actions by the user's rights 2026-10-28 13:55:46 +03:00
test_live_clone.py docs: a running VM can be cloned 2026-10-16 16:52:38 +03:00
test_live_create.py feat(instances): VM create runs as a job, also in the API 2026-10-15 09:28:43 +03:00
test_live_dataloss.py test(instances): the live suite expects vCPUs to wait for a shut-off VM 2026-10-27 13:53:06 +03:00
test_live_disk_resize.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_live_guest.py docs: snapshot create and revert run as jobs 2026-10-15 14:21:32 +03:00
test_live_iscsi.py test: a LUN of an iSCSI pool attaches live as a block disk 2026-10-18 21:32:52 +03:00
test_live_iso.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_live_jobs.py feat(instances): move a VM's disk to another storage pool of its host 2026-10-29 21:30:26 +03:00
test_live_lvm.py fix(instances): a disk on an LVM pool is not resized, the page says so instead of failing 2026-10-18 21:10:06 +03:00
test_live_snapshots.py feat(instances): external snapshot delete runs as a job 2026-10-14 23:27:57 +03:00
test_live_xml.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_live_xml_effects.py feat(instances): choose VNC or the serial console on the VM page 2026-10-17 19:48:58 +03:00
test_migrate_form.py feat(instances): migration runs as a job 2026-10-16 07:57:02 +03:00
test_migrate_job.py feat(instances): migrate a VM with its disks copied into pools of the destination 2026-10-29 19:46:31 +03:00
test_migration_bookkeeping.py feat(instances): migrate a VM with its disks copied into pools of the destination 2026-10-29 19:46:31 +03:00
test_migration_log.py feat(instances): migrate a VM with its disks copied into pools of the destination 2026-10-29 19:46:31 +03:00
test_missing_fields.py feat(logs): admin changes and logins are recorded on the Logs page 2026-10-23 10:30:48 +03:00
test_moved_while_waiting.py feat(instances): VM clone runs as a job 2026-10-15 09:28:43 +03:00
test_new_disk_name.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_page_controls.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_paused_block.py fix(instances): an owner cannot power a VM an administrator paused 2026-10-26 13:49:37 +03:00
test_pending_edits.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_quota.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_quota_lock.py fix(instances): the Resize tab changes only what was asked 2026-10-26 13:49:37 +03:00
test_resize_input.py fix(instances): the Resize tab changes only what was asked 2026-10-26 13:49:37 +03:00
test_root_pass.py fix(instances): a timed-out root password or SSH key change says it may still be made 2026-10-25 18:51:56 +03:00
test_security_mutations.py feat(instances): migration runs as a job 2026-10-16 07:57:02 +03:00
test_snapshot_delete_job.py feat(logs): every VM operation writes an audit row the VM's Logs tab finds by UUID 2026-10-24 14:14:53 +03:00
test_snapshot_jobs.py feat(instances): USB devices of the host given to a VM 2026-10-29 13:33:23 +03:00
test_snapshot_views.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_states.py feat(instances): PCI devices of the host given to a shut-off VM 2026-10-29 14:20:34 +03:00
test_stats_sample.py build: Chart.js 4.5.1 2026-10-17 13:19:43 +03:00
test_table_filter_js.py fix(templates): the list pages search their rows as text, with one script 2026-10-25 23:08:42 +03:00
test_template_flag.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_template_quota.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_template_rules.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_update_console.py feat(instances): choose VNC or the serial console on the VM page 2026-10-17 19:48:58 +03:00
test_views.py docs: snapshot create and revert run as jobs 2026-10-15 14:21:32 +03:00
test_vm_audit_rows.py fix(console): small console settings and page fixes 2026-10-26 20:41:46 +03:00
test_vm_report.py feat(instances): a report of every VM with its addresses and OS, as an Excel file 2026-10-24 22:30:07 +03:00
test_xss.py feat(instances): migrate a VM with its disks copied into pools of the destination 2026-10-29 19:46:31 +03:00