1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances
catborise 51dedb7b8f fix(instances): disk edits keep their XML; changes lock per VM
Disk edits:
- edit_disk built a new <disk> from the form and replaced the old one,
  losing what the form does not show (e.g. encryption and virtio
  driver options); a bus change detached and re-attached the disk.
  The disk of the persistent definition is now edited in place and the
  domain defined once; a bus change picks a free device name and drops
  the old address and virtio-only options. Pending persistent changes of
  a running VM are kept.
- Clone omits empty disk devices, refuses a disk without a supported
  source and destination, and checks the name before allocating storage.

Locks:
- Every VM change held its compute's exclusive lock, so one slow
  operation blocked all VMs on that compute. A VM change now holds its
  own VM lock plus a shared compute lock; reconciliation, migration and
  cloning hold the compute exclusively (two clones of different VMs
  must not pass the name check together).
- Quota-checked changes of one user (CPU, memory and disk resize,
  clone) run one at a time under a per-user lock, also across computes,
  so concurrent requests cannot all pass the check against the old
  allocation. It is the outermost lock; superusers, who have no quota,
  skip it.
- A busy lock answers 409 to the API and a message in the web UI. API
  power and destroy actions return the view's error instead of success.
2026-10-04 01:08:11 +03:00
..
api fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
fixtures Instances overhaul 2020-07-13 15:33:09 +06:00
migrations fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
templates fix: serve compute JSON endpoints as application/json, build chipset list safely 2026-10-02 22:34:05 +03:00
templatetags lint with black python. convert f style strings to old one. some small fixes 2020-11-05 12:34:31 +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 Corrected untranslated items 2023-12-13 14:00:02 +08:00
models.py fix(api): typed URLs and accurate response schemas 2026-10-04 01:08:11 +03:00
test_clone_permission.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_console_rule.py fix: add an authorization matrix test and close the endpoints it finds 2026-10-02 20:33:12 +03:00
test_console_settings_access.py fix(instances): show console settings and the VNC password only to console managers 2026-10-02 22:04:05 +03:00
test_create_instance.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_disk_isolation.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_gstfsd.py fix(gstfsd): append SSH keys, IPv6 loopback bind, server-side timeout 2026-10-03 00:02:01 +03:00
test_index.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_quota_lock.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_root_pass.py fix(gstfsd): random password salt, timeouts, loopback-only daemon 2026-10-02 22:52:09 +03:00
test_security_mutations.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00
test_template_flag.py fix(instances): only superusers and staff may change the template flag 2026-10-02 22:13:46 +03:00
test_xss.py test: inventory HTML sinks in templates, realistic datasource params in the matrix 2026-10-03 00:00:27 +03:00
tests.py fix: add an authorization matrix test and close the endpoints it finds 2026-10-02 20:33:12 +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(instances): do not refuse clones for volume-less disks or unusual names 2026-10-02 23:14:28 +03:00
views.py fix(instances): disk edits keep their XML; changes lock per VM 2026-10-04 01:08:11 +03:00