X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-console.git/blobdiff_plain/5a9b61b747ead3307eabd89e2c091fe8a31f4831..1837357df009ee685385458db31828a972c9fffb:/debian/sipb-xen-console.init diff --git a/debian/sipb-xen-console.init b/debian/sipb-xen-console.init index 6d2b7d4..b472606 100755 --- a/debian/sipb-xen-console.init +++ b/debian/sipb-xen-console.init @@ -1,4 +1,4 @@ -#! /bin/sh +#!/bin/bash ### BEGIN INIT INFO # Provides: sipb-xen-console # Required-Start: $local_fs $remote_fs @@ -15,7 +15,7 @@ # 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" @@ -35,6 +35,41 @@ SCRIPTNAME=/etc/init.d/$NAME # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions +gen_config() +{ + { + for i in $(invirt-getconf --ls hosts); do + local hostname=$(invirt-getconf hosts.$i.hostname) + echo "#include /etc/conserver/conf.d/$hostname" + done + } > /etc/conserver/invirt-hosts.cf + local realm=$(invirt-getconf authn.0.realm) + { + for i in $(invirt-getconf --ls hosts); do + local hostname=$(invirt-getconf hosts.$i.hostname) + echo "host/$hostname@$realm" + done + } > /etc/remctl/acl/invirt-console + + cat > /etc/nss-pgsql.conf << EOF +host = $(invirt-getconf db.host) +port = $(invirt-getconf db.port) +database = $(invirt-getconf db.dbname) +login = $(invirt-getconf db.user) + +querypasswd = SELECT name, NULL, machine_id + 1000 as uid, machine_id + 1000 as gid, '', '/consolefs/'|| name, '/usr/bin/sipb-xen-consolesh' FROM machines +querygroup = SELECT name, NULL, machine_id + 1000 as gid FROM machines +querymembers = SELECT name FROM machines WHERE 1000 + machine_id = %d +queryids = SELECT 1000 + machine_id AS gid FROM machines LIMIT 0 + +passwd_name = name +passwd_uid = 1000 + machine_id + +group_name = name +group_gid = 1000 + machine_id +EOF +} + # # Function that starts the daemon/service # @@ -44,6 +79,8 @@ do_start() # 0 if daemon has been started # 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 } @@ -67,6 +104,12 @@ do_stop() return "$RETVAL" } +do_reload() +{ + gen_config + /etc/init.d/conserver-server reload +} + case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" @@ -84,20 +127,12 @@ case "$1" in 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 @@ -116,8 +151,7 @@ case "$1" in 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