generate console config from /etc/invirt/* at start/reload
authorGreg Price <price@mit.edu>
Mon, 21 Jul 2008 22:30:55 +0000 (18:30 -0400)
committerGreg Price <price@mit.edu>
Mon, 21 Jul 2008 22:30:55 +0000 (18:30 -0400)
svn path=/trunk/packages/sipb-xen-console/; revision=699

debian/changelog
debian/sipb-xen-console.init

index 824c72f..9a3b3b2 100644 (file)
@@ -1,3 +1,9 @@
+sipb-xen-console (7.5) unstable; urgency=low
+
+  * Generate config at start/reload from /etc/invirt/*.
+
+ -- Greg Price <price@mit.edu>  Mon, 21 Jul 2008 18:29:43 -0400
+
 sipb-xen-console (7.4) unstable; urgency=low
 
   * pull in sipb-xen-base
 sipb-xen-console (7.4) unstable; urgency=low
 
   * pull in sipb-xen-base
index 117aec4..23d439d 100755 (executable)
@@ -15,7 +15,7 @@
 
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
 
 # PATH should only include /usr/* if it runs after the mountnfs.sh script
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="The sipb-xen console server homedir filesystem"
+DESC="The sipb-xen console server"
 NAME=sipb-xen-console
 DAEMON=/usr/bin/sipb-xen-consolefs
 DAEMON_ARGS="/consolefs"
 NAME=sipb-xen-console
 DAEMON=/usr/bin/sipb-xen-consolefs
 DAEMON_ARGS="/consolefs"
@@ -35,6 +35,15 @@ SCRIPTNAME=/etc/init.d/$NAME
 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 . /lib/lsb/init-functions
 
 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 . /lib/lsb/init-functions
 
+gen_config()
+{
+       perl -pe 's|^|#include /etc/conserver/conf.d/|' \
+           </etc/invirt/hosts >/etc/conserver/invirt-hosts.cf
+       INVIRT_REALM="$(cat /etc/invirt/realm)"
+       perl -pe "s|^|host/|; s|\$|\@$INVIRT_REALM|" \
+           </etc/invirt/hosts >/etc/remctl/acl/invirt-console
+}
+
 #
 # Function that starts the daemon/service
 #
 #
 # Function that starts the daemon/service
 #
@@ -45,6 +54,7 @@ do_start()
        #   1 if daemon was already running
        #   2 if daemon could not be started
        modprobe fuse
        #   1 if daemon was already running
        #   2 if daemon could not be started
        modprobe fuse
+       gen_config
        daemon --running -n $NAME && return 1
        daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON $DAEMON_ARGS || return 2
 }
        daemon --running -n $NAME && return 1
        daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON $DAEMON_ARGS || return 2
 }
@@ -68,6 +78,12 @@ do_stop()
        return "$RETVAL"
 }
 
        return "$RETVAL"
 }
 
+do_reload()
+{
+       gen_config
+       /etc/init.d/conserver-server reload
+}
+
 case "$1" in
   start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
 case "$1" in
   start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
@@ -85,20 +101,12 @@ case "$1" in
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
-  #reload|force-reload)
-       #
-       # If do_reload() is not implemented then leave this commented out
-       # and leave 'force-reload' as an alias for 'restart'.
-       #
-       #log_daemon_msg "Reloading $DESC" "$NAME"
-       #do_reload
-       #log_end_msg $?
-       #;;
-  restart|force-reload)
-       #
-       # If the "reload" option is implemented then remove the
-       # 'force-reload' alias
-       #
+  reload|force-reload)
+       log_daemon_msg "Reloading $DESC" "$NAME"
+       do_reload
+       log_end_msg $?
+       ;;
+  restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
@@ -117,8 +125,7 @@ case "$1" in
        esac
        ;;
   *)
        esac
        ;;
   *)
-       #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-       echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+       echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        exit 3
        ;;
 esac
        exit 3
        ;;
 esac