X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/a233e191c363c40d4a5c4b68da23dd627b4906c6..2be0969e153ace507ec07b27d156b50e54e00f94:/code/main.py diff --git a/code/main.py b/code/main.py index e5722fa..86da50e 100755 --- a/code/main.py +++ b/code/main.py @@ -549,7 +549,7 @@ def modifyDict(username, state, machine_id, fields): if hasattr(validate, 'contact'): machine.contact = validate.contact - session.save_or_update(machine) + session.add(machine) session.commit() except: session.rollback() @@ -563,10 +563,10 @@ def modifyDict(username, state, machine_id, fields): if disk.size != disksize: olddisk[disk.guest_device_name] = disksize disk.size = disksize - session.save_or_update(disk) + session.add(disk) for diskname in olddisk: controls.resizeDisk(oldname, diskname, str(olddisk[diskname])) - session.save_or_update(machine) + session.add(machine) session.commit() except: session.rollback() @@ -581,7 +581,7 @@ def modifyDict(username, state, machine_id, fields): n.hostname = validate.name if hasattr(validate, 'name'): controls.renameMachine(machine, oldname, validate.name) - session.save_or_update(machine) + session.add(machine) session.commit() except: session.rollback() @@ -594,7 +594,11 @@ def modifyDict(username, state, machine_id, fields): def infoDict(username, state, machine): """Get the variables used by info.tmpl.""" - status = controls.statusInfo(machine) + try: + status = controls.statusInfo(machine) + except CodeError, e: + # machine was shut down in between the call to listInfoDict and this + status = None has_vnc = hasVnc(status) if status is None: main_status = dict(name=machine.name,