From: Peter Palfrader Date: Sat, 26 Nov 2016 11:33:24 +0000 (+0000) Subject: Make bacula-idle-restart use ports defined in the manifest X-Git-Url: https://wiki.adam-barratt.org.uk/gitweb/?a=commitdiff_plain;h=7731d83d098545119ac64acfb9d595a7abc2abea;p=mirror%2Fdsa-puppet.git Make bacula-idle-restart use ports defined in the manifest --- diff --git a/modules/bacula/files/bacula-idle-restart b/modules/bacula/files/bacula-idle-restart deleted file mode 100644 index 2f331aaae..000000000 --- a/modules/bacula/files/bacula-idle-restart +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh -e - -# Written by Tollef Fog Heen -# Based on code by Peter Palfrader -# -# Restart the given bacula director when it's idle. -# -# XXX: Add locking - -set -e - -if [ "$1" = "fd" ];then - PORT=9102 - DIR="bacula-fd" -elif [ "$1" = "sd" ]; then - PORT=9103 - DIR="bacula-sd" -else - # Usage - echo "$0 [fd|sd]" - echo - echo "Restart bacula fd or sd when idle" - exit 1 -fi - -# chk_net -# returns true (0) if there are connections to that port. -chk_net() { - local port="$1"; shift - local con="$(ss -nt "sport = :$port" | wc -l)" - if [ "$con" -gt 1 ]; then - return 0 - else - return 1 - fi -} - -while chk_net "$PORT"; do - sleep 5 -done - -service $DIR restart diff --git a/modules/bacula/templates/bacula-idle-restart.erb b/modules/bacula/templates/bacula-idle-restart.erb new file mode 100644 index 000000000..2f331aaae --- /dev/null +++ b/modules/bacula/templates/bacula-idle-restart.erb @@ -0,0 +1,42 @@ +#! /bin/sh -e + +# Written by Tollef Fog Heen +# Based on code by Peter Palfrader +# +# Restart the given bacula director when it's idle. +# +# XXX: Add locking + +set -e + +if [ "$1" = "fd" ];then + PORT=9102 + DIR="bacula-fd" +elif [ "$1" = "sd" ]; then + PORT=9103 + DIR="bacula-sd" +else + # Usage + echo "$0 [fd|sd]" + echo + echo "Restart bacula fd or sd when idle" + exit 1 +fi + +# chk_net +# returns true (0) if there are connections to that port. +chk_net() { + local port="$1"; shift + local con="$(ss -nt "sport = :$port" | wc -l)" + if [ "$con" -gt 1 ]; then + return 0 + else + return 1 + fi +} + +while chk_net "$PORT"; do + sleep 5 +done + +service $DIR restart