Update merger / scheduler init script for zuulv3
Zuulv3 now suport command socket to stop both merger and schedulers, add logic to install new init scripts for them depending on zuulv2 or zuulv3. Change-Id: Iecc8c03896c145d29e42e6be6194d7db893c8515 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
0bfe6062a0
commit
701acbfdbf
134
files/zuul-mergerv3.init
Normal file
134
files/zuul-mergerv3.init
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: zuul-merger
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Zuul
|
||||||
|
# Description: Trunk gating system merger
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Do NOT "set -e"
|
||||||
|
|
||||||
|
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="Zuul Merger"
|
||||||
|
NAME=zuul-merger
|
||||||
|
DAEMON=/usr/local/bin/zuul-merger
|
||||||
|
PIDFILE=/var/run/$NAME/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/$NAME
|
||||||
|
USER=zuul
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Read configuration variable file if it is present
|
||||||
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
# 3 if pid file already exist
|
||||||
|
|
||||||
|
mkdir -p /var/run/$NAME
|
||||||
|
chown $USER /var/run/$NAME
|
||||||
|
ulimit -n 8192
|
||||||
|
if [ -f $PIDFILE ]; then
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
start-stop-daemon \
|
||||||
|
--start --quiet --pidfile $PIDFILE -c $USER \
|
||||||
|
--exec $DAEMON --test > /dev/null || return 1
|
||||||
|
start-stop-daemon \
|
||||||
|
--start --quiet --pidfile $PIDFILE -c $USER \
|
||||||
|
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
||||||
|
# Add code here, if necessary, that waits for the process to be ready
|
||||||
|
# to handle requests from services started subsequently which depend
|
||||||
|
# on this one. As a last resort, sleep for some time.
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
$DAEMON stop
|
||||||
|
rm -f /var/run/$NAME/*
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that sends a SIGHUP to the daemon/service
|
||||||
|
#
|
||||||
|
do_reload() {
|
||||||
|
#
|
||||||
|
# If the daemon can reload its configuration without
|
||||||
|
# restarting (for example, when it is sent a SIGHUP),
|
||||||
|
# then implement that here.
|
||||||
|
#
|
||||||
|
start-stop-daemon \
|
||||||
|
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-merger
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
3) echo "Pidfile at $PIDFILE already exists, run service zuul-merger stop to clean up."
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
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)
|
||||||
|
#
|
||||||
|
# If the "reload" option is implemented then remove the
|
||||||
|
# 'force-reload' alias
|
||||||
|
#
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
do_start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
159
files/zuul-schedulerv3.init
Normal file
159
files/zuul-schedulerv3.init
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: zuul-scheduler
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Zuul scheduler
|
||||||
|
# Description: Trunk gating system
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Do NOT "set -e"
|
||||||
|
|
||||||
|
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
DESC="Zuul"
|
||||||
|
NAME=zuul-scheduler
|
||||||
|
DAEMON=/usr/local/bin/zuul-scheduler
|
||||||
|
PIDFILE=/var/run/$NAME/$NAME.pid
|
||||||
|
SCRIPTNAME=/etc/init.d/$NAME
|
||||||
|
USER=zuul
|
||||||
|
|
||||||
|
# Exit if the package is not installed
|
||||||
|
[ -x "$DAEMON" ] || exit 0
|
||||||
|
|
||||||
|
# Read configuration variable file if it is present
|
||||||
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||||
|
|
||||||
|
# Load the VERBOSE setting and other rcS variables
|
||||||
|
. /lib/init/vars.sh
|
||||||
|
|
||||||
|
# Define LSB log_* functions.
|
||||||
|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that starts the daemon/service
|
||||||
|
#
|
||||||
|
do_start()
|
||||||
|
{
|
||||||
|
# Return
|
||||||
|
# 0 if daemon has been started
|
||||||
|
# 1 if daemon was already running
|
||||||
|
# 2 if daemon could not be started
|
||||||
|
# 3 if pid file exits already
|
||||||
|
|
||||||
|
mkdir -p /var/run/$NAME
|
||||||
|
chown $USER /var/run/$NAME
|
||||||
|
ulimit -n 8192
|
||||||
|
if [ -f $PIDFILE ]; then
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
start-stop-daemon \
|
||||||
|
--start --quiet --pidfile $PIDFILE -c $USER \
|
||||||
|
--exec $DAEMON --test > /dev/null || return 1
|
||||||
|
start-stop-daemon \
|
||||||
|
--start --quiet --pidfile $PIDFILE -c $USER \
|
||||||
|
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
||||||
|
# Add code here, if necessary, that waits for the process to be ready
|
||||||
|
# to handle requests from services started subsequently which depend
|
||||||
|
# on this one. As a last resort, sleep for some time.
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_stop()
|
||||||
|
{
|
||||||
|
$DAEMON stop
|
||||||
|
rm -f /var/run/$NAME/*
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that stops the daemon/service
|
||||||
|
#
|
||||||
|
do_graceful_stop()
|
||||||
|
{
|
||||||
|
PID=`cat $PIDFILE`
|
||||||
|
kill -USR1 $PID
|
||||||
|
|
||||||
|
# wait until really stopped
|
||||||
|
if [ -n "${PID:-}" ]; then
|
||||||
|
i=0
|
||||||
|
while kill -0 "${PID:-}" 2> /dev/null; do
|
||||||
|
if [ $i -eq '0' ]; then
|
||||||
|
echo -n " ... waiting "
|
||||||
|
else
|
||||||
|
echo -n "."
|
||||||
|
fi
|
||||||
|
i=$(($i+1))
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f /var/run/$NAME/*
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function that sends a SIGHUP to the daemon/service
|
||||||
|
#
|
||||||
|
do_reload() {
|
||||||
|
#
|
||||||
|
# If the daemon can reload its configuration without
|
||||||
|
# restarting (for example, when it is sent a SIGHUP),
|
||||||
|
# then implement that here.
|
||||||
|
#
|
||||||
|
start-stop-daemon \
|
||||||
|
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-scheduler
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
|
do_start
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
3) echo "Pidfile at $PIDFILE already exists, run service zuul-scheduler stop to clean up." ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||||
|
do_stop
|
||||||
|
case "$?" in
|
||||||
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||||
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
|
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)
|
||||||
|
#
|
||||||
|
# If the "reload" option is implemented then remove the
|
||||||
|
# 'force-reload' alias
|
||||||
|
#
|
||||||
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||||
|
do_graceful_stop
|
||||||
|
do_start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
:
|
@ -276,8 +276,12 @@ class zuul (
|
|||||||
|
|
||||||
if $zuulv3 {
|
if $zuulv3 {
|
||||||
$zuul_conf_content = template('zuul/zuulv3.conf.erb')
|
$zuul_conf_content = template('zuul/zuulv3.conf.erb')
|
||||||
|
$zuul_merger_source = 'puppet:///modules/zuul/zuul-mergerv3.init'
|
||||||
|
$zuul_scheduler_source = 'puppet:///modules/zuul/zuul-schedulerv3.init'
|
||||||
} else {
|
} else {
|
||||||
$zuul_conf_content = template('zuul/zuul.conf.erb')
|
$zuul_conf_content = template('zuul/zuul.conf.erb')
|
||||||
|
$zuul_merger_source = 'puppet:///modules/zuul/zuul-merger.init'
|
||||||
|
$zuul_scheduler_source = 'puppet:///modules/zuul/zuul-scheduler.init'
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: We should put in notify either Service['zuul'] or Exec['zuul-reload']
|
# TODO: We should put in notify either Service['zuul'] or Exec['zuul-reload']
|
||||||
@ -507,7 +511,7 @@ class zuul (
|
|||||||
owner => 'root',
|
owner => 'root',
|
||||||
group => 'root',
|
group => 'root',
|
||||||
mode => '0555',
|
mode => '0555',
|
||||||
source => 'puppet:///modules/zuul/zuul-scheduler.init',
|
source => $zuul_scheduler_source,
|
||||||
notify => Class['zuul::systemd_reload'],
|
notify => Class['zuul::systemd_reload'],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -516,7 +520,7 @@ class zuul (
|
|||||||
owner => 'root',
|
owner => 'root',
|
||||||
group => 'root',
|
group => 'root',
|
||||||
mode => '0555',
|
mode => '0555',
|
||||||
source => 'puppet:///modules/zuul/zuul-merger.init',
|
source => $zuul_merger_source,
|
||||||
notify => Class['zuul::systemd_reload'],
|
notify => Class['zuul::systemd_reload'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user