-#! /bin/sh
+#!/bin/bash
### BEGIN INIT INFO
# Provides: sipb-xen-console
# Required-Start: $local_fs $remote_fs
# 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"
# 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
#
# 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
}
return "$RETVAL"
}
+do_reload()
+{
+ gen_config
+ /etc/init.d/conserver-server reload
+}
+
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
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
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