X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/cdcd6b7a886dbc7f3908e70ce646ed7ad7c49546..5b6a2d94cebef6d12c2eaf32c010e3a0a8fbf329:/code/main.py
diff --git a/code/main.py b/code/main.py
index e068e48..473647f 100755
--- a/code/main.py
+++ b/code/main.py
@@ -132,7 +132,7 @@ console will suffer artifacts.
""",
'Windows': """
Windows Vista: The Vista image is licensed for all MIT students and will automatically activate off the network; see the licensing confirmation e-mail for details. The installer requires 512 MiB RAM and at least 7.5 GiB disk space (15 GiB or more recommended).
-Windows XP: This is the volume license CD image. You will need your own volume license key to complete the install. We do not have these available for the general MIT community; ask your department if they have one.
+Windows XP: This is the volume license CD image. You will need your own volume license key to complete the install. We do not have these available for the general MIT community; ask your department if they have one, or visit http://msca.mit.edu/ if you are staff/faculty to request one.
"""
}
@@ -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."""