projects
/
invirt/packages/invirt-web.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
check in (part of?) the Apache config
[invirt/packages/invirt-web.git]
/
code
/
validation.py
diff --git
a/code/validation.py
b/code/validation.py
index
a2e19fe
..
97a8819
100644
(file)
--- a/
code/validation.py
+++ b/
code/validation.py
@@
-18,7
+18,7
@@
MAX_VMS_ACTIVE = 4
def getMachinesByOwner(user, machine=None):
"""Return the machines owned by the same as a machine.
def getMachinesByOwner(user, machine=None):
"""Return the machines owned by the same as a machine.
-
+
If the machine is None, return the machines owned by the same
user.
"""
If the machine is None, return the machines owned by the same
user.
"""
@@
-31,7
+31,7
@@
def getMachinesByOwner(user, machine=None):
def maxMemory(user, machine=None, on=True):
"""Return the maximum memory for a machine or a user.
def maxMemory(user, machine=None, on=True):
"""Return the maximum memory for a machine or a user.
- If machine is None, return the memory available for a new
+ If machine is None, return the memory available for a new
machine. Else, return the maximum that machine can have.
on is whether the machine should be turned on. If false, the max
machine. Else, return the maximum that machine can have.
on is whether the machine should be turned on. If false, the max
@@
-49,6
+49,11
@@
def maxMemory(user, machine=None, on=True):
return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage)
def maxDisk(user, machine=None):
return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage)
def maxDisk(user, machine=None):
+ """Return the maximum disk that a machine can reach.
+
+ 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])
machines = getMachinesByOwner(user, machine)
disk_usage = sum([sum([y.size for y in x.disks])
for x in machines if x != machine])
@@
-101,7
+106,7
@@
def validMemory(user, memory, machine=None, on=True):
if memory < MIN_MEMORY_SINGLE:
raise ValueError
except ValueError:
if memory < MIN_MEMORY_SINGLE:
raise ValueError
except ValueError:
- raise InvalidInput('memory', memory,
+ raise InvalidInput('memory', memory,
"Minimum %s MiB" % MIN_MEMORY_SINGLE)
if memory > maxMemory(user, machine, on):
raise InvalidInput('memory', memory,
"Minimum %s MiB" % MIN_MEMORY_SINGLE)
if memory > maxMemory(user, machine, on):
raise InvalidInput('memory', memory,
@@
-125,12
+130,12
@@
def validDisk(user, disk, machine=None):
return disk
def validVmType(vm_type):
return disk
def validVmType(vm_type):
- if vm_type == 'hvm':
- return Type.get('linux-hvm')
- elif vm_type == 'paravm':
- return Type.get('linux')
- else:
+ if vm_type is None:
+ return None
+ t = Type.get(vm_type)
+ if t is None:
raise CodeError("Invalid vm type '%s'" % vm_type)
raise CodeError("Invalid vm type '%s'" % vm_type)
+ return t
def testMachineId(user, machine_id, exists=True):
"""Parse, validate and check authorization for a given user and machine.
def testMachineId(user, machine_id, exists=True):
"""Parse, validate and check authorization for a given user and machine.
@@
-138,7
+143,7
@@
def testMachineId(user, machine_id, exists=True):
If exists is False, don't check that it exists.
"""
if machine_id is None:
If exists is False, don't check that it exists.
"""
if machine_id is None:
- raise InvalidInput('machine_id', machine_id,
+ raise InvalidInput('machine_id', machine_id,
"Must specify a machine ID.")
try:
machine_id = int(machine_id)
"Must specify a machine ID.")
try:
machine_id = int(machine_id)
@@
-176,7
+181,7
@@
def testAdmin(user, admin, machine):
raise InvalidInput('administrator', admin, errmsg)
#XXX Should we require that user is in the admin group?
return admin
raise InvalidInput('administrator', admin, errmsg)
#XXX Should we require that user is in the admin group?
return admin
-
+
def testOwner(user, owner, machine=None):
"""Determine whether a user can set the owner of a machine to this value.
def testOwner(user, owner, machine=None):
"""Determine whether a user can set the owner of a machine to this value.