From f96c0441e3cd33c3f5ff66dfac80d69b5d609dd8 Mon Sep 17 00:00:00 2001 From: Seena Fallah Date: Tue, 12 Mar 2024 23:42:05 +0100 Subject: [PATCH] ceph-handler: accept 404 as a success status for rgw restart 404 is the status code returned by rgw when it is serving website api. This needs to be consider as a healthy status for rgw. Signed-off-by: Seena Fallah --- .../templates/restart_rgw_daemon.sh.j2 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/roles/ceph-handler/templates/restart_rgw_daemon.sh.j2 b/roles/ceph-handler/templates/restart_rgw_daemon.sh.j2 index cf032885f3..77ecfdfc1e 100644 --- a/roles/ceph-handler/templates/restart_rgw_daemon.sh.j2 +++ b/roles/ceph-handler/templates/restart_rgw_daemon.sh.j2 @@ -45,23 +45,27 @@ check_socket() { check_for_curl_or_wget() { local i=$1 + url="$RGW_PROTOCOL://${RGW_IPS[i]}:${RGW_PORTS[i]}" if ${DOCKER_EXECS[i]} command -v wget &>/dev/null; then - rgw_test_command="wget --no-check-certificate --tries 1 --quiet -O /dev/null" + rgw_test_result=$(${DOCKER_EXECS[i]} wget --no-check-certificate --tries 1 --quiet --server-response --spider -O /dev/null 2>&1 $url | awk 'NR==1{print $2}') elif ${DOCKER_EXECS[i]} command -v curl &>/dev/null; then - rgw_test_command="curl {{ '-g' if ip_version == 'ipv6' else '' }} -k --fail --silent --output /dev/null" + rgw_test_result=$(${DOCKER_EXECS[i]} curl {{ '-g' if ip_version == 'ipv6' else '' }} -k -w "%{http_code}" --silent --output /dev/null $url) else echo "It seems that neither curl nor wget are available on your system." echo "Cannot test rgw connection." - exit 0 + rgw_test_result=0 fi } check_rest() { local i=$1 - check_for_curl_or_wget ${i} local succ=0 while [ $RETRIES -ne 0 ]; do - ${DOCKER_EXECS[i]} $rgw_test_command $RGW_PROTOCOL://${RGW_IPS[i]}:${RGW_PORTS[i]} && succ=$((succ+1)) && break + check_for_curl_or_wget ${i} + if [ $rgw_test_result -eq 200 ] || [ $rgw_test_result -eq 404 ]; then + succ=$((succ+1)) + break + fi sleep $DELAY let RETRIES=RETRIES-1 done