X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/0e16120a7b3ae7887089cd1f8fc8d1e9925ebe52..251a74f2ce55741ee63f8d5b6c732f5631912b79:/code/validation.py diff --git a/code/validation.py b/code/validation.py index 97a8819..874dbb0 100644 --- a/code/validation.py +++ b/code/validation.py @@ -4,7 +4,7 @@ import cache_acls import getafsgroups import re import string -from sipb_xen_database import Machine, NIC, Type +from sipb_xen_database import Machine, NIC, Type, Disk from webcommon import InvalidInput, g MAX_MEMORY_TOTAL = 512 @@ -44,7 +44,7 @@ def maxMemory(user, machine=None, on=True): if not on: return MAX_MEMORY_SINGLE machines = getMachinesByOwner(user, machine) - active_machines = [x for x in machines if g.uptimes.get(x)] + active_machines = [x for x in machines if g.xmlist.get(x)] mem_usage = sum([x.memory for x in active_machines if x != machine]) return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage) @@ -54,14 +54,17 @@ def maxDisk(user, machine=None): If machine is None, the maximum disk for a new machine. Otherwise, return the maximum that a given machine can be changed to. """ - machines = getMachinesByOwner(user, machine) - disk_usage = sum([sum([y.size for y in x.disks]) - for x in machines if x != machine]) + if machine is not None: + machine_id = machine.machine_id + else: + machine_id = None + disk_usage = Disk.query().filter_by(Disk.c.machine_id != machine_id, + owner=user).sum(Disk.c.size) return min(MAX_DISK_SINGLE, MAX_DISK_TOTAL-disk_usage/1024.) def cantAddVm(user): machines = getMachinesByOwner(user) - active_machines = [x for x in machines if g.uptimes.get(x)] + active_machines = [x for x in machines if g.xmlist.get(x)] if len(machines) >= MAX_VMS_TOTAL: return 'You have too many VMs to create a new one.' if len(active_machines) >= MAX_VMS_ACTIVE: