diff --git a/files/nodepool-builder.init b/files/nodepool-builder.init index 29ddea0..a93e1f6 100755 --- a/files/nodepool-builder.init +++ b/files/nodepool-builder.init @@ -33,6 +33,8 @@ USER=nodepool # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions +PIDFILE_DIR=$(dirname $PIDFILE) + # # Function that starts the daemon/service # @@ -43,8 +45,10 @@ do_start() # 1 if daemon was already running # 2 if daemon could not be started - mkdir -p /var/run/$NAME - chown $USER /var/run/$NAME + if [ ! -d "$PIDFILE_DIR" ] ; then + mkdir -p $PIDFILE_DIR + chown $USER $PIFILE_DIR + fi ulimit -n 8192 start-stop-daemon --start --quiet --pidfile $PIDFILE -c $USER --exec $DAEMON --test > /dev/null \ || return 1 @@ -69,7 +73,9 @@ do_stop() start-stop-daemon --stop --signal 9 --pidfile $PIDFILE RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 - rm -f /var/run/$NAME/* + if [ -f "$PIDFILE" ] ; then + rm -f $PIDFILE + fi return "$RETVAL" } @@ -98,7 +104,9 @@ do_graceful_stop() done fi - rm -f /var/run/$NAME/* + if [ -f "$PIDFILE" ] ; then + rm -f $PIDFILE + fi } # diff --git a/manifests/builder.pp b/manifests/builder.pp index 7bf8e8d..47a403c 100644 --- a/manifests/builder.pp +++ b/manifests/builder.pp @@ -22,6 +22,7 @@ class nodepool::builder( $environment = {}, $build_workers = '1', $upload_workers = '4', + $zuulv3 = false, ) { include ::diskimage_builder diff --git a/templates/nodepool-builder.default.erb b/templates/nodepool-builder.default.erb index 263c254..09ec648 100644 --- a/templates/nodepool-builder.default.erb +++ b/templates/nodepool-builder.default.erb @@ -5,4 +5,7 @@ export STATSD_PORT=8125 <% @environment.keys.sort.each do |key| -%> export <%= key %>='<%= @environment[key] %>' <% end -%> +<% if @zuulv3 -%> +PIDFILE=/var/run/nodepool/nodepool-builder.pid +<% end -%> DAEMON_ARGS="-c /etc/nodepool/nodepool.yaml -l /etc/nodepool/builder-logging.conf --build-workers <%= @build_workers %> --upload-workers <%= @upload_workers %>"