1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00
webvirtcloud/vrtManager
catborise e84db7542d fix(appsettings,vrtManager,storages): error handlers that hid the real failure
Reviewing the error handlers outside instances/ turned up three that masked or
swallowed the failure they caught:

- appsettings/settings.get_settings() runs on every request (middleware) and
  loads app_settings from the database. Its bare `except: pass` left `entries`
  unbound on a database error, so the next line raised UnboundLocalError
  instead; it also caught KeyboardInterrupt/SystemExit. It now catches
  DatabaseError and returns, keeping the already-loaded values.
- vrtManager.network.refresh_dhcp_leases raised a formatted string
  (`raise f"..."`), which Python rejects with TypeError, hiding the real
  DHCPLeases failure. It now raises util.OperationError, which the API/HTML
  error handling already renders as a libvirt error, and clears self.leases.
- storages.views.get_volumes caught libvirtError and answered 200 with an empty
  body, so the caller could not tell a failed pool read from an empty pool. It
  now returns 400 with the error.

The other broad handlers reviewed (appsettings/nwfilters/virtsecrets views,
storages/upload cleanup and recovery paths, vrtManager display getters) report
the error or are best-effort and were left as they are.

Tests: get_settings() survives a database error during the query and during
iteration without raising and still loads a real value; refresh_dhcp_leases
raises OperationError (keeping the cause) not TypeError; get_volumes returns 400
on a listing failure and the sorted volumes on success. The tests fail on the
previous code.
2026-10-07 11:29:45 +03:00
..
__init__.py Initial commit 2015-02-27 10:53:51 +02:00
connection.py fix: connection errors on VM actions name the host only to administrators 2026-10-06 10:08:48 +03:00
create.py fix(instances): CD-ROM bus, USB controller and MACs of a new VM 2026-10-04 18:33:28 +03:00
hostdetails.py fix cpu_usage waiting for instance creation. 2023-05-18 14:35:19 +03:00
instance.py fix(vrtManager): a shut-off VM with NVRAM or TPM state is not migrated 2026-10-06 21:02:58 +03:00
interface.py fix(interfaces): validate IPv6 address and gateway of host interfaces 2026-10-04 17:29:59 +03:00
libvirt-ssh fix(vrtManager): libvirt connections open within a time limit 2026-10-05 09:06:52 +03:00
network.py fix(appsettings,vrtManager,storages): error handlers that hid the real failure 2026-10-07 11:29:45 +03:00
nwfilters.py fix(vrtManager): request values are not written into XPath expressions 2026-10-06 08:55:41 +03:00
rwlock.py fix(vrtManager): modernize rwlock for Python 3.12 compatibility and add tests 2026-09-24 21:49:52 +03:00
storage.py Detect RDB pools too 2025-03-14 10:31:40 +01:00
test_change_network.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_connection.py fix(vrtManager): the libvirt event loop starts per process, on first use 2026-10-05 14:41:31 +03:00
test_console_setters.py feat(console): VNC is the only console type 2026-10-04 01:08:11 +03:00
test_dhcp_leases.py fix(appsettings,vrtManager,storages): error handlers that hid the real failure 2026-10-07 11:29:45 +03:00
test_iso_media.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_live_connection.py fix(vrtManager): libvirt connections open within a time limit 2026-10-05 09:06:52 +03:00
test_migration.py fix(vrtManager): a shut-off VM with NVRAM or TPM state is not migrated 2026-10-06 21:02:58 +03:00
test_network_ip.py test: expand unit test coverage across admin, accounts, vrtManager, logs, appsettings, and datasource 2026-09-25 11:26:53 +03:00
test_persistent_edits.py fix(instances): disk and agent channel changes on paused VMs 2026-10-04 17:10:49 +03:00
test_read_cache.py perf(instances): the VM page reads each kind of domain XML once 2026-10-05 21:24:07 +03:00
test_resize_disk.py fix(instances): domain edits start from the persistent definition 2026-10-04 01:08:11 +03:00
test_rwlock.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
test_usage.py perf(instances): VM statistics sample all devices in one second 2026-10-05 15:27:55 +03:00
test_util.py fix(instances): CD-ROM bus, USB controller and MACs of a new VM 2026-10-04 18:33:28 +03:00
test_xml_safety.py chore: drop references to the local roadmap from code and tests 2026-10-04 11:09:25 +03:00
test_xpath_values.py fix(vrtManager): request values are not written into XPath expressions 2026-10-06 08:55:41 +03:00
util.py fix: connection errors on VM actions name the host only to administrators 2026-10-06 10:08:48 +03:00
virtsecrets.py Django 3.2.4 LTS upgrade 2021-06-15 13:28:47 +03:00