X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/74cf12ca4c1ba056483885a9b3b0d5c86014f1d1..0db5d84820273e5e6e202450d873acc133e4cf59:/code/main.py diff --git a/code/main.py b/code/main.py index f1ff5ac..de28a63 100755 --- a/code/main.py +++ b/code/main.py @@ -37,8 +37,9 @@ sys.path.append('/home/ecprice/.local/lib/python2.5/site-packages') import templates from Cheetah.Template import Template import sipb_xen_database -from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type +from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall import validation +import cache_acls from webcommon import InvalidInput, CodeError, g import controls @@ -98,6 +99,7 @@ class Defaults: memory = 256 disk = 4.0 cdrom = '' + autoinstall = '' name = '' def __init__(self, max_memory=None, max_disk=None, **kws): self.type = Type.get('linux-hvm') @@ -221,8 +223,7 @@ def getListDict(user): defaults=defaults, machines=machines, has_vnc=has_vnc, - uptimes=g.uptimes, - cdroms=CDROM.select()) + uptimes=g.uptimes) return d def listVms(user, fields): @@ -394,16 +395,21 @@ def modifyDict(user, fields): disk.size = disksize ctx.current.save(disk) - if owner is not None: + update_acl = False + if owner is not None and owner != machine.owner: machine.owner = owner + update_acl = True if name is not None: machine.name = name - if admin is not None: + if admin is not None and admin != machine.administrator: machine.administrator = admin + update_acl = True if contact is not None: machine.contact = contact ctx.current.save(machine) + if update_acl: + cache_acls.refreshMachine(machine) transaction.commit() except: transaction.rollback() @@ -571,7 +577,6 @@ def infoDict(user, machine): defaults.disk = "%0.2f" % (machine.disks[0].size/1024.) checkpoint.checkpoint('Got defaults') d = dict(user=user, - cdroms=CDROM.select(), on=status is not None, machine=machine, defaults=defaults,