]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
ADMIN: reload: introduce verbose and silent mode
authorWilliam Lallemand <wlallemand@irq6.net>
Sun, 28 Sep 2025 20:45:04 +0000 (22:45 +0200)
committerWilliam Lallemand <wlallemand@irq6.net>
Mon, 29 Sep 2025 17:29:10 +0000 (19:29 +0200)
By default haproxy-reload displays the error that are not emitted by
haproxy, but only emitted by haproxy-reload.

-s silent mode, don't display any error

-v verbose mode, display the loading messages returned by the master CLI
reload command upon error.

admin/cli/haproxy-reload

index 3c421a4d84f416f469f0e47b8d6a556204861108..f149ee5de38362aba450119d32793b2ce5327a62 100755 (executable)
@@ -2,10 +2,18 @@
 
 set -e
 
+export VERBOSE=1
 export TIMEOUT=90
 export MASTER_SOCKET=${MASTER_SOCKET:-/var/run/haproxy-master.sock}
 export RET=
 
+alert() {
+       if [ "$VERBOSE" -ge "1" ]; then
+               echo "[ALERT] $*" >&2
+       fi
+}
+
+
 reload() {
        while read -r line; do
 
@@ -14,13 +22,19 @@ reload() {
                elif [ "$line" = "Success=1" ]; then
                        RET=0
                elif [ "$line" = "Another reload is still in progress." ]; then
-                       echo "[ALERT] Another reload is still in progress." >&2
+                       alert "$line"
+               elif [ "$line" = "--" ]; then
+                       continue;
+               else
+                       if [ "$RET" = 1 ] && [ "$VERBOSE" = "2" ]; then
+                               echo "$line" >&2
+                       fi
                fi
 
        done < <(echo "reload" | socat -t"${TIMEOUT}" "${MASTER_SOCKET}" -)
 
        if [ -z "$RET" ]; then
-               echo "[ALERT] Couldn't finish the reload before the timeout (${TIMEOUT})." >&2
+               alert "Couldn't finish the reload before the timeout (${TIMEOUT})."
                return 1
        fi
 
@@ -39,7 +53,8 @@ usage() {
        echo "  -S, --master-socket <path>   Use the master socket at <path> (default: ${MASTER_SOCKET})"
        echo "  -d, --debug                  Debug mode, set -x"
        echo "  -t, --timeout                Timeout (socat -t) (default: ${TIMEOUT})"
-       echo "  -v, --verbose                Verbose mode"
+       echo "  -s, --silent                 Slient mode (no output)"
+       echo "  -v, --verbose                Verbose mode (output from haproxy)"
        echo "  -h, --help                   This help"
        echo ""
        echo "Examples:"
@@ -58,6 +73,14 @@ main() {
                                TIMEOUT="$2"
                                shift 2
                                ;;
+                       -s|--silent)
+                               VERBOSE=0
+                               shift
+                               ;;
+                       -v|--verbose)
+                               VERBOSE=2
+                               shift
+                               ;;
                        -d|--debug)
                                DEBUG=1
                                shift