Index: /trunk/packages/sipb-xen-console-server/debian/changelog
===================================================================
--- /trunk/packages/sipb-xen-console-server/debian/changelog	(revision 671)
+++ /trunk/packages/sipb-xen-console-server/debian/changelog	(revision 672)
@@ -1,2 +1,8 @@
+sipb-xen-console-server (2.03) unstable; urgency=low
+
+  * Multiplex consoles on multiple hosts.
+
+ -- Greg Price <price@mit.edu>  Sun, 13 Jul 2008 08:35:17 -0400
+
 sipb-xen-console-server (2.02) unstable; urgency=low
 
Index: /trunk/packages/sipb-xen-console-server/debian/control
===================================================================
--- /trunk/packages/sipb-xen-console-server/debian/control	(revision 671)
+++ /trunk/packages/sipb-xen-console-server/debian/control	(revision 672)
@@ -10,5 +10,5 @@
 Provides: ${diverted-files}
 Conflicts: ${diverted-files}
-Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-server
+Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-server, remctl-client
 Description: SIPB Xen serial console server server
   This configures the VMM for the server-side of the console server
Index: /trunk/packages/sipb-xen-console-server/debian/control.in
===================================================================
--- /trunk/packages/sipb-xen-console-server/debian/control.in	(revision 671)
+++ /trunk/packages/sipb-xen-console-server/debian/control.in	(revision 672)
@@ -10,5 +10,5 @@
 Provides: ${diverted-files}
 Conflicts: ${diverted-files}
-Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-server
+Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-server, remctl-client
 Description: SIPB Xen serial console server server
   This configures the VMM for the server-side of the console server
Index: /trunk/packages/sipb-xen-console-server/files/usr/sbin/sipb-xen-update-conserver
===================================================================
--- /trunk/packages/sipb-xen-console-server/files/usr/sbin/sipb-xen-update-conserver	(revision 671)
+++ /trunk/packages/sipb-xen-console-server/files/usr/sbin/sipb-xen-update-conserver	(revision 672)
@@ -4,4 +4,5 @@
 import subprocess
 import os
+import socket
 
 sipb_xen_database.connect('postgres://sipb-xen@sipb-xen-dev.mit.edu/sipb_xen')
@@ -19,6 +20,13 @@
 
 if __name__ == '__main__':
+    hostname = socket.getfqdn().lower()
+    config = '\n'.join('console %s { master %s; }' % (vm, hostname)
+                       for vm in live_vms())
     f = open('/etc/conserver/sipb-xen-consoles.cf', 'w')
-    f.write('\n'.join('console %s {}' % vm for vm in live_vms()))
+    f.write(config)
     f.close()
     reload_conserver()
+    subprocess.call(['/usr/bin/kinit', '-k', '-t', '/etc/krb5.keytab',
+                     'host/'+hostname+'@ATHENA.MIT.EDU'])
+    subprocess.call(['/usr/bin/remctl', 'sipb-xen-console.mit.edu',
+                     'console', 'update', config])
Index: /trunk/packages/sipb-xen-console/debian/changelog
===================================================================
--- /trunk/packages/sipb-xen-console/debian/changelog	(revision 671)
+++ /trunk/packages/sipb-xen-console/debian/changelog	(revision 672)
@@ -1,2 +1,8 @@
+sipb-xen-console (7.2) unstable; urgency=low
+
+  * Multiplex consoles on multiple hosts.
+  
+ -- Greg Price <price@mit.edu>  Sun, 13 Jul 2008 08:52:18 -0400
+
 sipb-xen-console (7.1) unstable; urgency=low
 
Index: /trunk/packages/sipb-xen-console/debian/control
===================================================================
--- /trunk/packages/sipb-xen-console/debian/control	(revision 671)
+++ /trunk/packages/sipb-xen-console/debian/control	(revision 672)
@@ -10,5 +10,5 @@
 Provides: ${diverted-files}
 Conflicts: ${diverted-files}
-Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-client, daemon, debathena-kerberos-config, fuse-utils, libnss-pgsql1, nscd, openssh-server, python-fuse, sipb-xen-chrony-config, sipb-xen-database-common
+Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-client, daemon, debathena-kerberos-config, fuse-utils, libnss-pgsql1, nscd, openssh-server, python-fuse, sipb-xen-chrony-config, sipb-xen-database-common, remctl-server
 Description: SIPB Xen serial console server
  This package  should be installed on sipb-xen-console
Index: /trunk/packages/sipb-xen-console/debian/control.in
===================================================================
--- /trunk/packages/sipb-xen-console/debian/control.in	(revision 671)
+++ /trunk/packages/sipb-xen-console/debian/control.in	(revision 672)
@@ -10,5 +10,5 @@
 Provides: ${diverted-files}
 Conflicts: ${diverted-files}
-Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-client, daemon, debathena-kerberos-config, fuse-utils, libnss-pgsql1, nscd, openssh-server, python-fuse, sipb-xen-chrony-config, sipb-xen-database-common
+Depends: ${shlibs:Depends}, ${misc:Depends}, conserver-client, daemon, debathena-kerberos-config, fuse-utils, libnss-pgsql1, nscd, openssh-server, python-fuse, sipb-xen-chrony-config, sipb-xen-database-common, remctl-server
 Description: SIPB Xen serial console server
  This package  should be installed on sipb-xen-console
Index: /trunk/packages/sipb-xen-console/files/etc/conserver/conserver.cf.sipb-xen
===================================================================
--- /trunk/packages/sipb-xen-console/files/etc/conserver/conserver.cf.sipb-xen	(revision 671)
+++ /trunk/packages/sipb-xen-console/files/etc/conserver/conserver.cf.sipb-xen	(revision 672)
@@ -1,6 +1,13 @@
 # default config for console
 config * {
-	master  black-mesa;
-	port    3109;
-	sslenabled yes;
+	sslrequired yes;
 }
+default * {
+        type exec;
+}
+access * {
+        trusted 127.0.0.1;
+        limited *;
+}
+
+#include /etc/conserver/invirt-hosts.cf
Index: /trunk/packages/sipb-xen-console/files/etc/conserver/console.cf
===================================================================
--- /trunk/packages/sipb-xen-console/files/etc/conserver/console.cf	(revision 672)
+++ /trunk/packages/sipb-xen-console/files/etc/conserver/console.cf	(revision 672)
@@ -0,0 +1,5 @@
+config * {
+  master localhost;
+  port   3109;
+  sslenabled yes;
+}
Index: /trunk/packages/sipb-xen-console/files/etc/conserver/invirt-hosts.cf
===================================================================
--- /trunk/packages/sipb-xen-console/files/etc/conserver/invirt-hosts.cf	(revision 672)
+++ /trunk/packages/sipb-xen-console/files/etc/conserver/invirt-hosts.cf	(revision 672)
@@ -0,0 +1,2 @@
+#include /etc/conserver/conf.d/black-mesa.mit.edu
+#include /etc/conserver/conf.d/sx-blade-2.mit.edu
Index: /trunk/packages/sipb-xen-console/files/etc/remctl/acl/invirt-console
===================================================================
--- /trunk/packages/sipb-xen-console/files/etc/remctl/acl/invirt-console	(revision 672)
+++ /trunk/packages/sipb-xen-console/files/etc/remctl/acl/invirt-console	(revision 672)
@@ -0,0 +1,2 @@
+host/black-mesa.mit.edu@ATHENA.MIT.EDU
+host/sx-blade-2.mit.edu@ATHENA.MIT.EDU
Index: /trunk/packages/sipb-xen-console/files/etc/remctl/conf.d/invirt-console
===================================================================
--- /trunk/packages/sipb-xen-console/files/etc/remctl/conf.d/invirt-console	(revision 672)
+++ /trunk/packages/sipb-xen-console/files/etc/remctl/conf.d/invirt-console	(revision 672)
@@ -0,0 +1,1 @@
+console update /usr/sbin/invirt-console-update /etc/remctl/acl/invirt-console
Index: /trunk/packages/sipb-xen-console/files/usr/sbin/invirt-console-update
===================================================================
--- /trunk/packages/sipb-xen-console/files/usr/sbin/invirt-console-update	(revision 672)
+++ /trunk/packages/sipb-xen-console/files/usr/sbin/invirt-console-update	(revision 672)
@@ -0,0 +1,18 @@
+#!/usr/bin/python
+import sys
+import os
+import subprocess
+
+def main(args):
+  contents = args[2]
+  hostname = os.environ['REMOTE_HOST'].lower()
+  f = file('/etc/conserver/conf.d/'+hostname, 'w')
+  f.write(contents)
+  f.close()
+  p = subprocess.Popen(['/etc/init.d/conserver-server', 'reload'],
+                       stdout=subprocess.PIPE)
+  p.wait()
+  return 0
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv))
