X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/d6b952470cb626a495772ecf2106587b6ee05a16..2679b6ea15e3cec298488a17ad845d0d5064beb2:/code/main.py diff --git a/code/main.py b/code/main.py index 8199250..80761ae 100755 --- a/code/main.py +++ b/code/main.py @@ -103,6 +103,7 @@ class Defaults: cdrom = '' autoinstall = '' name = '' + description = '' type = 'linux-hvm' def __init__(self, max_memory=None, max_disk=None, **kws): @@ -135,9 +136,9 @@ def hasVnc(status): return False def parseCreate(username, state, fields): - kws = dict([(kw, fields.getfirst(kw)) for kw in 'name owner memory disksize vmtype cdrom clone_from'.split()]) + kws = dict([(kw, fields.getfirst(kw)) for kw in 'name description owner memory disksize vmtype cdrom clone_from'.split()]) validate = validation.Validate(username, state, strict=True, **kws) - return dict(contact=username, name=validate.name, memory=validate.memory, + return dict(contact=username, name=validate.name, description=validate.description, memory=validate.memory, disksize=validate.disksize, owner=validate.owner, machine_type=validate.vmtype, cdrom=getattr(validate, 'cdrom', None), clone_from=getattr(validate, 'clone_from', None)) @@ -346,7 +347,7 @@ def modifyDict(username, state, fields): olddisk = {} transaction = ctx.current.create_transaction() try: - kws = dict([(kw, fields.getfirst(kw)) for kw in 'machine_id owner admin contact name memory vmtype disksize'.split()]) + kws = dict([(kw, fields.getfirst(kw)) for kw in 'machine_id owner admin contact name description memory vmtype disksize'.split()]) validate = validation.Validate(username, state, **kws) machine = validate.machine oldname = machine.name @@ -371,6 +372,8 @@ def modifyDict(username, state, fields): update_acl = True if hasattr(validate, 'name'): machine.name = validate.name + if hasattr(validate, 'description'): + machine.description = validate.description if hasattr(validate, 'admin') and validate.admin != machine.administrator: machine.administrator = validate.admin update_acl = True @@ -466,7 +469,7 @@ console will suffer artifacts. def badOperation(u, s, e): """Function called when accessing an unknown URI.""" - raise CodeError("Unknown operation") + return ({'Status': '404 Not Found'}, 'Invalid operation.') def infoDict(username, state, machine): """Get the variables used by info.tmpl.""" @@ -488,6 +491,7 @@ def infoDict(username, state, machine): display_fields = """name uptime memory state cpu_weight on_reboot on_poweroff on_crash on_xend_start on_xend_stop bootloader""".split() display_fields = [('name', 'Name'), + ('description', 'Description'), ('owner', 'Owner'), ('administrator', 'Administrator'), ('contact', 'Contact'), @@ -509,6 +513,7 @@ def infoDict(username, state, machine): fields = [] machine_info = {} machine_info['name'] = machine.name + machine_info['description'] = machine.description machine_info['type'] = machine.type.hvm and 'HVM' or 'ParaVM' machine_info['owner'] = machine.owner machine_info['administrator'] = machine.administrator @@ -543,7 +548,7 @@ def infoDict(username, state, machine): checkpoint.checkpoint('Got mem') max_disk = validation.maxDisk(machine.owner, machine) defaults = Defaults() - for name in 'machine_id name administrator owner memory contact'.split(): + for name in 'machine_id name description administrator owner memory contact'.split(): setattr(defaults, name, getattr(machine, name)) defaults.type = machine.type.type_id defaults.disk = "%0.2f" % (machine.disks[0].size/1024.)