import yaml
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
def randomUUID():
import controls
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
def pathSplit(path):
#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
#end def
#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
#end def
"""
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):
"""Return the maximum memory for a machine or a user.
machine_id = machine.machine_id
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.)
def cantAddVm(owner, g):
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:
return ('You already have the maximum number of VMs turned on. '
name = name.lower()
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 \'-\'.')
return name
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)
xmlist_raw = cachedproperty(lambda self: controls.getList())