From e4854da750615c45d19dbffa1643dc36bfc86048 Mon Sep 17 00:00:00 2001
From: Quentin Smith
Under the covers, the autoinstaller uses our own patched version of +xen-create-image, which is a tool based on debootstrap. If you log +into the serial console while the install is running, you can watch +it. +""", + '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 %s, using the name of the machine as your +username.""" % config.console.hostname, + 'HVM/ParaVM': """ +HVM machines use the virtualization features of the processor, while +ParaVM machines rely on a modified kernel to communicate directly with +the hypervisor. HVMs support boot CDs of any operating system, and +the VNC console applet. The three-minute autoinstaller produces +ParaVMs. ParaVMs typically are more efficient, and always support the +console server.
+ +More details are on the +wiki, including steps to prepare an HVM guest to boot as a ParaVM +(which you can skip by using the autoinstaller to begin with.)
+ +We recommend using a ParaVM when possible and an HVM when necessary.
+""",
+ 'CPU Weight': """
+Don't ask us! We're as mystified as you are.""",
+ 'Owner': """
+The owner field is used to determine quotas. It must be the name of a
+locker that you are an AFS administrator of. In particular, you or an
+AFS group you are a member of must have AFS rlidwka bits on the
+locker. You can check who administers the LOCKER locker using the
+commands 'attach LOCKER; fs la /mit/LOCKER' on Athena.) See also administrator.""",
+ 'Administrator': """
+The administrator field determines who can access the console and
+power on and off the machine. This can be either a user or a moira
+group.""",
+ 'Quotas': """
+Quotas are determined on a per-locker basis. Each locker may have a
+maximum of 512 mebibytes of active ram, 50 gibibytes of disk, and 4
+active machines.""",
+ 'Console': """
+Framebuffer: At a Linux boot prompt in your VM, try
+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 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.
+"""
+ }
+
+ if not subject:
+ subject = sorted(help_mapping.keys())
+ if not isinstance(subject, list):
+ subject = [subject]
+
+ return dict(user=cherrypy.request.login,
+ simple=simple,
+ subjects=subject,
+ mapping=help_mapping)
+ help._cp_config['tools.require_login.on'] = False
+
+ @cherrypy.expose
@cherrypy.tools.mako(filename="/helloworld.mako")
def helloworld(self, **kwargs):
return {'request': cherrypy.request, 'kwargs': kwargs}
@@ -434,86 +513,6 @@ def modify(username, state, path, fields):
info_dict['result'] = result
return templates.info(searchList=[info_dict])
-
-def helpHandler(username, state, path, fields):
- """Handler for help messages."""
- simple = fields.getfirst('simple')
- subjects = fields.getlist('subject')
-
- help_mapping = {
- 'Autoinstalls': """
-The autoinstaller builds a minimal Debian or Ubuntu system to run as a
-ParaVM. You can access the resulting system by logging into the serial console server
-with your Kerberos tickets; there is no root password so sshd will
-refuse login.
Under the covers, the autoinstaller uses our own patched version of -xen-create-image, which is a tool based on debootstrap. If you log -into the serial console while the install is running, you can watch -it. -""", - '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 %s, using the name of the machine as your -username.""" % config.console.hostname, - 'HVM/ParaVM': """ -HVM machines use the virtualization features of the processor, while -ParaVM machines rely on a modified kernel to communicate directly with -the hypervisor. HVMs support boot CDs of any operating system, and -the VNC console applet. The three-minute autoinstaller produces -ParaVMs. ParaVMs typically are more efficient, and always support the -console server.
- -More details are on the -wiki, including steps to prepare an HVM guest to boot as a ParaVM -(which you can skip by using the autoinstaller to begin with.)
- -We recommend using a ParaVM when possible and an HVM when necessary.
-""",
- 'CPU Weight': """
-Don't ask us! We're as mystified as you are.""",
- 'Owner': """
-The owner field is used to determine quotas. It must be the name of a
-locker that you are an AFS administrator of. In particular, you or an
-AFS group you are a member of must have AFS rlidwka bits on the
-locker. You can check who administers the LOCKER locker using the
-commands 'attach LOCKER; fs la /mit/LOCKER' on Athena.) See also administrator.""",
- 'Administrator': """
-The administrator field determines who can access the console and
-power on and off the machine. This can be either a user or a moira
-group.""",
- 'Quotas': """
-Quotas are determined on a per-locker basis. Each locker may have a
-maximum of 512 mebibytes of active ram, 50 gibibytes of disk, and 4
-active machines.""",
- 'Console': """
-Framebuffer: At a Linux boot prompt in your VM, try
-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 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.
-"""
- }
-
- if not subjects:
- subjects = sorted(help_mapping.keys())
-
- d = dict(user=username,
- simple=simple,
- subjects=subjects,
- mapping=help_mapping)
-
- return templates.help(searchList=[d])
-
-
def badOperation(u, s, p, e):
"""Function called when accessing an unknown URI."""
return ({'Status': '404 Not Found'}, 'Invalid operation.')
@@ -635,13 +634,11 @@ def throwError(_, __, ___, ____):
"""Throw an error, to test the error-tracing mechanisms."""
raise RuntimeError("test of the emergency broadcast system")
-mapping = dict(#list=listVms,
- vnc=vnc,
+mapping = dict(vnc=vnc,
command=command,
modify=modify,
info=info,
create=create,
- help=helpHandler,
unauth=unauthFront,
admin=admin,
overlord=admin,
diff --git a/code/templates/help.mako b/code/templates/help.mako
new file mode 100644
index 0000000..ea27773
--- /dev/null
+++ b/code/templates/help.mako
@@ -0,0 +1,37 @@
+<%page expression_filter="h"/>
+<%inherit file="skeleton.mako" />
+
+<%!
+ pageclass = 'help'
+%>
+
+<%def name="title()">
+% if len(subjects) == 1:
+Help on ${subjects[0]}
+% else:
+Help
+% endif
+%def>
+
+% if not simple:
+
Topics: +% for key in sorted(mapping): +${key} +% endfor +
++See also tips and HOWTOs on the wiki. +
+% endif + +% for subject in subjects: +% if subject in mapping: +${mapping[subject]|n}
+% else: +Unknown subject '${subject}'.
+% endif +% endfor +% if simple: +Close +% endif diff --git a/code/templates/help.tmpl b/code/templates/help.tmpl deleted file mode 100644 index 61061ee..0000000 --- a/code/templates/help.tmpl +++ /dev/null @@ -1,39 +0,0 @@ -#from skeleton import skeleton -#extends skeleton - -#attr pageclass = 'help' - -#def title -#if len($subjects) == 1 -Help on $subjects[0] -#else -Help -#end if -#end def - - -#def body -#if not $simple -Topics: -#for $key in sorted($mapping) -$key -#end for -
--See also tips and HOWTOs on the wiki. -
-#end if -#for $subject in $subjects -#if $subject in $mapping -$mapping[$subject]
-#end filter -#else -Unknown subject '$subject'.
-#end if -#end for -#if $simple -Close -#end if -#end def -- 1.7.9.5