X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/2b4e872eda2ebc5724caba7a33d05c964ae2751e..6d171bbcd3eb2d5d60fc6c4bc9ef12608421d7c1:/code/main.py diff --git a/code/main.py b/code/main.py index 24254c7..dd36b1b 100755 --- a/code/main.py +++ b/code/main.py @@ -6,12 +6,12 @@ import cPickle import cgi import datetime import hmac +import random import sha import simplejson import sys import time import urllib -import random from StringIO import StringIO def revertStandardError(): @@ -34,13 +34,14 @@ if __name__ == '__main__': import templates from Cheetah.Template import Template -import sipb_xen_database -from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall import validation import cache_acls from webcommon import InvalidInput, CodeError, State import controls from getafsgroups import getAfsGroupMembers +from invirt import database +from invirt.database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall +from invirt.config import structs as config def pathSplit(path): if path.startswith('/'): @@ -83,7 +84,8 @@ def makeErrorPre(old, addition): else: return '
STDERR:
' + str(addition) + '' -Template.sipb_xen_database = sipb_xen_database +Template.database = database +Template.config = config Template.helppopup = staticmethod(helppopup) Template.err = None @@ -255,10 +257,11 @@ def vnc(username, state, path, fields): token = {'data': pickled_data, 'digest': m.digest()} token = cPickle.dumps(token) token = base64.urlsafe_b64encode(token) - if controls.listHost(machine) == 'sx-blade-2.mit.edu': - port = 10004 + host = controls.listHost(machine) + if host: + port = 10003 + [h.hostname for h in config.hosts].index(host) else: - port = 10003 + port = 5900 # dummy status = controls.statusInfo(machine) has_vnc = hasVnc(status) @@ -280,7 +283,7 @@ def getHostname(nic): if nic.hostname and '.' in nic.hostname: return nic.hostname elif nic.machine: - return nic.machine.name + '.xvm.mit.edu' + return nic.machine.name + '.' + config.dns.domains[0] else: return None @@ -437,8 +440,8 @@ def helpHandler(username, state, path, fields): help_mapping = {'ParaVM Console': """ ParaVM machines do not support local console access over VNC. To access the serial console of these machines, you can SSH with Kerberos -to console.xvm.mit.edu, using the name of the machine as your -username.""", +to console.%s, using the name of the machine as your +username.""" % config.dns.domains[0], 'HVM/ParaVM': """ HVM machines use the virtualization features of the processor, while ParaVM machines use Xen's emulation of virtualization features. You @@ -466,6 +469,10 @@ active machines.""", setting fb=false to disable the framebuffer. If you don't, your machine will run just fine, but the applet's display of the 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 req uires 512 MB RAM and at least 7.5 GB disk space (15 GB or more recommended).
%s' % cgi.escape(str(checkpoint)) def constructor(): - connect('postgres://sipb-xen@sipb-xen-dev.mit.edu/sipb_xen') + connect() return App def main():