mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-10 20:26:48 +00:00
fix(instances): the quota counts queued clones and pending values
A user's quota counted each VM's running vCPUs, memory and disks, so a larger value set for the VM's next start was not counted, and a clone counted only once its VM was recorded, so a user could queue clones past the quota. Now: - Each VM counts the larger of its running and its next-start values. - A clone job counts as one VM with the source's persistent vCPUs, memory and disk size, which its plan stores, from its admission until its VM is recorded; a failed, cancelled or resolved job no longer counts. The clone's VM and its owner are recorded in one transaction, so the quota counts either the job or the VM, never neither. - The quota reads each VM's definition once (cached_reads).
This commit is contained in:
parent
13d3a16ea5
commit
6dc2e5851b
6 changed files with 122 additions and 33 deletions
|
|
@ -713,8 +713,8 @@ class wvmInstance(wvmConnect):
|
|||
|
||||
return vcpus
|
||||
|
||||
def get_memory(self):
|
||||
mem = util.get_xml_path(self._XMLDesc(0), "/domain/memory")
|
||||
def get_memory(self, config=False):
|
||||
mem = util.get_xml_path(self._XMLDesc(PERSISTENT_XML if config else 0), "/domain/memory")
|
||||
return int(mem) // 1024
|
||||
|
||||
def get_cur_memory(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue