Index: trunk/packages/sipb-xen-www/code/controls.py
===================================================================
--- trunk/packages/sipb-xen-www/code/controls.py	(revision 959)
+++ trunk/packages/sipb-xen-www/code/controls.py	(revision 1001)
@@ -14,5 +14,5 @@
 
 from invirt.config import structs as config
-from invirt.database import Machine, Disk, Type, NIC, CDROM, ctx, meta
+from invirt.database import Machine, Disk, Type, NIC, CDROM, session, meta
 
 # ... and stolen from xend/uuid.py
Index: trunk/packages/sipb-xen-www/code/main.py
===================================================================
--- trunk/packages/sipb-xen-www/code/main.py	(revision 959)
+++ trunk/packages/sipb-xen-www/code/main.py	(revision 1001)
@@ -41,5 +41,5 @@
 from getafsgroups import getAfsGroupMembers
 from invirt import database
-from invirt.database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall
+from invirt.database import Machine, CDROM, session, connect, MachineAccess, Type, Autoinstall
 from invirt.config import structs as config
 
Index: trunk/packages/sipb-xen-www/code/templates/functions.tmpl
===================================================================
--- trunk/packages/sipb-xen-www/code/templates/functions.tmpl	(revision 959)
+++ trunk/packages/sipb-xen-www/code/templates/functions.tmpl	(revision 1001)
@@ -21,5 +21,5 @@
 #def cdromList($default="", $onchange=None)
 #filter None
-$databaseList(sorted($database.CDROM.select(), key=lambda x: x.description),
+$databaseList(sorted($database.CDROM.query(), key=lambda x: x.description),
               default, onchange, 'cdrom', 'cdromlist', 'cdrom_id', 'description')
 #end filter
@@ -28,5 +28,5 @@
 #def autoList($default="", $onchange=None)
 #filter None
-$databaseList(sorted($database.Autoinstall.select(), key=lambda x: x.description),
+$databaseList(sorted($database.Autoinstall.query(), key=lambda x: x.description),
               default, onchange, 'autoinstall', 'autoinstalllist', 'autoinstall_id', 'description')
 #end filter
Index: trunk/packages/sipb-xen-www/code/validation.py
===================================================================
--- trunk/packages/sipb-xen-www/code/validation.py	(revision 959)
+++ trunk/packages/sipb-xen-www/code/validation.py	(revision 1001)
@@ -79,5 +79,5 @@
     if machine:
         owner = machine.owner
-    return Machine.select_by(owner=owner)
+    return Machine.query().filter_by(owner=owner)
 
 def maxMemory(owner, g, machine=None, on=True):
@@ -111,6 +111,7 @@
     else:
         machine_id = None
-    disk_usage = Disk.query().filter_by(Disk.c.machine_id != machine_id,
-                                        owner=owner).sum(Disk.c.size) or 0
+    disk_usage = Disk.query().filter(Disk.c.machine_id != machine_id).\
+                     join('machine').\
+                     filter_by(owner=owner).sum(Disk.c.size) or 0
     return min(MAX_DISK_SINGLE, MAX_DISK_TOTAL-disk_usage/1024.)
 
@@ -118,5 +119,5 @@
     machines = getMachinesByOwner(owner)
     active_machines = [m for m in machines if m.name in g.xmlist_raw]
-    if len(machines) >= MAX_VMS_TOTAL:
+    if machines.count() >= MAX_VMS_TOTAL:
         return 'You have too many VMs to create a new one.'
     if len(active_machines) >= MAX_VMS_ACTIVE:
@@ -270,5 +271,5 @@
     if machine is not None and name == machine.name:
         return None
-    if not Machine.select_by(name=name):
+    if not Machine.query().filter_by(name=name):
         if not validMachineName(name):
             raise InvalidInput('name', name, 'You must provide a machine name.  Max 63 chars, alnum plus \'-\', does not begin or end with \'-\'.')
Index: trunk/packages/sipb-xen-www/code/webcommon.py
===================================================================
--- trunk/packages/sipb-xen-www/code/webcommon.py	(revision 959)
+++ trunk/packages/sipb-xen-www/code/webcommon.py	(revision 1001)
@@ -46,9 +46,9 @@
     def getMachines(self):
         if self.isadmin:
-            return Machine.query().join('acl').select_by(
+            return Machine.query().join('acl').filter_by(
                 database.or_(MachineAccess.c.user == self.username,
                              Machine.c.adminable == True))
         else:
-            return Machine.query().join('acl').select_by(user=self.username)
+            return Machine.query().join('acl').filter_by(user=self.username)
 
     machines = cachedproperty(getMachines)
