Fix a couple bugs.
authorEric Price <ecprice@mit.edu>
Tue, 3 Jun 2008 03:40:51 +0000 (23:40 -0400)
committerEric Price <ecprice@mit.edu>
Tue, 3 Jun 2008 03:40:51 +0000 (23:40 -0400)
svn path=/trunk/packages/sipb-xen-www/; revision=575

code/validation.py

index a152946..caa8ce2 100644 (file)
@@ -84,7 +84,7 @@ def maxMemory(owner, g, machine=None, on=True):
     if not on:
         return MAX_MEMORY_SINGLE
     machines = getMachinesByOwner(owner, machine)
     if not on:
         return MAX_MEMORY_SINGLE
     machines = getMachinesByOwner(owner, machine)
-    active_machines = [x for x in machines if g.xmlist.get(x)]
+    active_machines = [m for m in machines if m.name in g.xmlist_raw]
     mem_usage = sum([x.memory for x in active_machines if x != machine])
     return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage)
 
     mem_usage = sum([x.memory for x in active_machines if x != machine])
     return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage)
 
@@ -104,7 +104,7 @@ def maxDisk(owner, machine=None):
 
 def cantAddVm(owner, g):
     machines = getMachinesByOwner(owner)
 
 def cantAddVm(owner, g):
     machines = getMachinesByOwner(owner)
-    active_machines = [x for x in machines if g.xmlist.get(x)]
+    active_machines = [m for m in machines if m.name in g.xmlist_raw]
     if len(machines) >= MAX_VMS_TOTAL:
         return 'You have too many VMs to create a new one.'
     if len(active_machines) >= MAX_VMS_ACTIVE:
     if len(machines) >= MAX_VMS_TOTAL:
         return 'You have too many VMs to create a new one.'
     if len(active_machines) >= MAX_VMS_ACTIVE:
@@ -200,7 +200,9 @@ def testAdmin(user, admin, machine):
     Return the value to set the admin field to (possibly 'system:' +
     admin).  XXX is modifying this a good idea?
     """
     Return the value to set the admin field to (possibly 'system:' +
     admin).  XXX is modifying this a good idea?
     """
-    if admin in (None, machine.administrator):
+    if admin is None:
+        return None
+    if machine is not None and admin == machine.administrator:
         return None
     if admin == user:
         return admin
         return None
     if admin == user:
         return admin