1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances/tests
catborise f004552148 feat(instances): a new VM can get a cloud-init seed with its hostname and SSH keys
Cloud images read their first-boot settings with cloud-init. The panel
served them only over HTTP, which a VM reaches only with the network
and a reverse DNS name for its address. A new VM can now carry them
itself: Cloud-init seed (Advanced) on the create form, or cloud_init in
the API.

The job writes a NoCloud seed, an ISO labelled cidata, into the disk's
directory pool as cidata-<uuid>.iso and puts it in the VM's CD-ROM
drive. Its meta-data holds the VM's UUID as instance-id and its name as
hostname, written as JSON so a VM named 123 or yes keeps a string
hostname; its user-data is what the HTTP datasource serves, with the
creating user's SSH keys. The ISO is built with pycdlib and written
through a libvirt stream, as the NVRAM copy is, now one helper for both.

A seed needs a CD-ROM bus and a directory pool, else the create is
refused. A failed create deletes the seed with the new disk, recovery
names one left behind, and deleting the VM with its disks deletes its
seed, found in the pools by name even when ejected. A clone's drive is
left empty: the seed is the source VM's identity.
2026-10-25 19:57:15 +03:00
..
js feat(instances): the VM list filters by state, and a host's name finds its VMs 2026-10-24 18:51:47 +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 refused VM create form comes back with what was entered 2026-10-20 08:12:25 +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_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 test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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 feat(instances): a new VM can get a cloud-init seed with its hostname and SSH keys 2026-10-25 19:57:15 +03:00
test_console_listener.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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 test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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 feat(instances): a new VM can get a cloud-init seed with its hostname and SSH keys 2026-10-25 19:57:15 +03:00
test_create_instance.py fix(instances): a custom VM gets the MAC addresses its create form shows 2026-10-19 22:24:57 +03:00
test_create_job.py fix(instances): a new VM's vCPUs, memory and disk size are at least 1 2026-10-24 09:31:12 +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 feat(instances): VM create runs as a job, also in the API 2026-10-15 09:28:43 +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 refactor(computes): the lock helpers take claims instead of file locks 2026-10-14 23:27:57 +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_drbd_target.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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_gstfsd.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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 test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_instance_filter_js.py feat(instances): the VM list filters by state, and a host's name finds its VMs 2026-10-24 18:51:47 +03:00
test_list_rpc.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_list_unreachable.py feat(instances): the VM list filters by state, and a host's name finds its VMs 2026-10-24 18:51:47 +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: the live suite passes on v3.1.0 again 2026-10-24 09:31:07 +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): a shut-off UEFI VM can be migrated 2026-10-16 21:05:23 +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): a running migration can be cancelled; its time limit goes 2026-10-16 07:57:02 +03:00
test_migration_bookkeeping.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_migration_log.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_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): a running VM can be cloned 2026-10-16 16:52:38 +03:00
test_pending_edits.py feat(instances): a running VM's XML can be edited for its next start 2026-10-24 20:03:20 +03:00
test_quota.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +03:00
test_quota_lock.py test: each app keeps its tests in a tests package 2026-10-12 15:17:30 +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): snapshot revert runs as a job 2026-10-15 14:21:32 +03:00
test_snapshot_views.py docs: snapshot create and revert run as jobs 2026-10-15 14:21:32 +03:00
test_states.py feat(tables): tables sort with tablesort, the grouped VM list within each host 2026-10-24 19:02:51 +03:00
test_stats_sample.py build: Chart.js 4.5.1 2026-10-17 13:19:43 +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 feat(instances): a running VM gets its root password and SSH key through its guest agent 2026-10-25 15:37:37 +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(logs): every VM operation writes an audit row the VM's Logs tab finds by UUID 2026-10-24 14:14:53 +03:00