add wiki and console-server links to ParaVM/HVM help text
[invirt/packages/invirt-web.git] / code / main.py
index 9be2b6c..226a038 100755 (executable)
@@ -431,12 +431,13 @@ def helpHandler(username, state, path, fields):
 The autoinstaller builds a minimal Debian or Ubuntu system to run as a
 ParaVM.  You can access the resulting system by logging into the <a
 href="help?simple=true&subject=ParaVM+Console">serial console server</a>
-with your Kerberos tickets; there is no root password and sshd will
+with your Kerberos tickets; there is no root password so sshd will
 refuse login.</p>
 
-<p>Under the covers the autoinstaller uses our own patched version of
-xen-create-image, which is a tool based on debootstrap.  If you're
-quick in logging into the serial console, you can see it running.
+<p>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
@@ -445,8 +446,19 @@ 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 use Xen's emulation of virtualization features.  You
-want an HVM virtualized machine.""",
+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
+<a href="help?subject=ParaVM+Console">console server</a>.</p>
+
+<p>More details are <a
+href="https://xvm.scripts.mit.edu/wiki/Paravirtualization">on the
+wiki</a>, including steps to prepare an HVM guest to boot as a ParaVM
+(which you can skip by using the autoinstaller to begin with.)</p>
+
+<p>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': """
@@ -644,7 +656,8 @@ Subject: %s
 
 %s
 """ % (to, config.web.hostname, subject, body)
-    p = subprocess.Popen(['/usr/sbin/sendmail', to], stdin=subprocess.PIPE)
+    p = subprocess.Popen(['/usr/sbin/sendmail', '-f', to, to],
+                         stdin=subprocess.PIPE)
     p.stdin.write(mail)
     p.stdin.close()
     p.wait()