X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/87b47a1da6fb8cb3a203f1e906cd9066ec335cae..5b6a2d94cebef6d12c2eaf32c010e3a0a8fbf329:/code/main.py diff --git a/code/main.py b/code/main.py index 7ab52b5..473647f 100755 --- a/code/main.py +++ b/code/main.py @@ -147,7 +147,7 @@ console will suffer artifacts. help._cp_config['tools.require_login.on'] = False def parseCreate(self, fields): - kws = dict([(kw, fields.get(kw)) for kw in 'name description owner memory disksize vmtype cdrom autoinstall'.split()]) + kws = dict([(kw, fields.get(kw)) for kw in 'name description owner memory disksize vmtype cdrom autoinstall'.split() if fields.get(kw)]) validate = validation.Validate(cherrypy.request.login, cherrypy.request.state, strict=True, **kws) return dict(contact=cherrypy.request.login, name=validate.name, description=validate.description, memory=validate.memory, disksize=validate.disksize, owner=validate.owner, machine_type=getattr(validate, 'vmtype', Defaults.type), @@ -182,6 +182,11 @@ console will suffer artifacts. return {'request': cherrypy.request, 'kwargs': kwargs} helloworld._cp_config['tools.require_login.on'] = False + @cherrypy.expose + def errortest(self): + """Throw an error, to test the error-tracing mechanisms.""" + raise RuntimeError("test of the emergency broadcast system") + class MachineView(View): # This is hairy. Fix when CherryPy 3.2 is out. (rename to # _cp_dispatch, and parse the argument as a list instead of @@ -374,9 +379,9 @@ def getListDict(username, state): checkpoint.checkpoint('Got my machines') on = {} has_vnc = {} + installing = {} xmlist = state.xmlist checkpoint.checkpoint('Got uptimes') - can_clone = 'ice3' not in state.xmlist_raw for m in machines: if m not in xmlist: has_vnc[m] = 'Off' @@ -389,6 +394,10 @@ def getListDict(username, state): has_vnc[m] = "WTF?" else: has_vnc[m] = "ParaVM" + if xmlist[m].get('autoinstall'): + installing[m] = True + else: + installing[m] = False max_memory = validation.maxMemory(username, state) max_disk = validation.maxDisk(username) checkpoint.checkpoint('Got max mem/disk') @@ -406,7 +415,7 @@ def getListDict(username, state): defaults=defaults, machines=machines, has_vnc=has_vnc, - can_clone=can_clone) + installing=installing) return d def getHostname(nic): @@ -648,16 +657,11 @@ def admin(username, state, path, fields): newstate.environ = state.environ return handler(username, newstate, path, fields) -def throwError(_, __, ___, ____): - """Throw an error, to test the error-tracing mechanisms.""" - raise RuntimeError("test of the emergency broadcast system") - mapping = dict( modify=modify, unauth=unauthFront, admin=admin, - overlord=admin, - errortest=throwError) + overlord=admin) def printHeaders(headers): """Print a dictionary as HTTP headers."""