1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-09 11:46:49 +00:00
webvirtcloud/instances/templates
catborise fb3f686532 fix(instances): the quota counts every VM and refuses what it cannot verify
check_user_quota added up the vCPUs, memory and disks of the user's
VMs, but skipped a VM whose host failed a TCP probe. A host that was
down therefore let users exceed their quota, and the probe always failed
for ssh computes named by an ssh_config alias or reached through
ProxyJump, so their VMs were never counted. A VM that could not be read
turned the page into the error page instead.

- Hosts are checked with Compute.status, the connection WebVirtCloud
  uses, once per host. A VM that cannot be read (host down, VM gone)
  makes the usage unknown: clone and resize up are refused with their
  own message (fail closed).
- A request that adds nothing is not checked, so a user over quota can
  still shrink a VM. Users without limits, and an exceeded instance
  count (from the database), need no host either.
- Memory resize of a running VM changes only the current memory, but
  the quota was charged with the submitted maximum. It is now charged
  with no change, and resize_mem gets the current maximum, so a VM that
  shuts down meanwhile cannot take an unchecked one.
- The VM page no longer computes the quota on every load (it read every
  VM of the user on every host for a "quota reached" banner). The limit
  is reported when a change is refused.

The test that expected a down host to pass the quota now expects it to
be refused. Checked against the test hosts: with a VM behind an
ssh_config alias the previous code counted 29 vCPUs, the new one 31;
with a VM on an unreachable host the previous code allowed +1 vCPU,
the new one refuses it after 5.1 s and allows -1 at once. The new
tests fail on the previous code, except the ones guarding unchanged
behaviour.
2026-10-05 12:26:57 +03:00
..
instances fix(instances): NIC edits keep their settings; edits keep metadata 2026-10-04 01:08:11 +03:00
add_instance_network_block.html change name for network model to nic type 2023-08-17 13:22:18 +03:00
add_instance_owner_block.html logger updates (#31) 2023-08-09 09:20:18 +03:00
add_instance_volume.html logger updates (#31) 2023-08-09 09:20:18 +03:00
allinstances.html fix(instances): host errors on the instance list are for administrators 2026-10-05 11:49:46 +03:00
allinstances_index_grouped.html fix(instances): lists show a VM that cannot be read as unknown 2026-10-05 11:03:32 +03:00
allinstances_index_nongrouped.html fix(instances): lists show a VM that cannot be read as unknown 2026-10-05 11:03:32 +03:00
bottom_bar.html logger updates (#31) 2023-08-09 09:20:18 +03:00
create_flav_block.html logger updates (#31) 2023-08-09 09:20:18 +03:00
create_inst_block.html bootstrap icon conversion fixes 2023-08-11 09:40:38 +03:00
create_instance_w1.html fix: serve compute JSON endpoints as application/json, build chipset list safely 2026-10-02 22:34:05 +03:00
create_instance_w2.html fix(instances): CD-ROM bus, USB controller and MACs of a new VM 2026-10-04 18:33:28 +03:00
instance.html fix(instances): the quota counts every VM and refuses what it cannot verify 2026-10-05 12:26:57 +03:00
instance_actions.html fix(instances): lists show a VM that cannot be read as unknown 2026-10-05 11:03:32 +03:00