tripleo-common/healthcheck/swift-proxy
Martin Schuppert 3ddb77e340 Fix swift-proxy healthcheck
With the current swift-proxy healthcheck the container status is
unhealty even the service is up.

The used ps/grep won't return the swift proxy processes as the
output gets truncated:

()[root@overcloud-controller-0 /]$ ps -e
    PID TTY          TIME CMD
      1 ?        00:00:00 dumb-init
      6 ?        00:02:52 swift-proxy-ser
     28 ?        00:00:25 swift-proxy-ser
   4753 pts/1    00:00:00 sh
   4797 pts/1    00:00:00 ps

As a result we end up in the else, checking the cache.

This moves the if to use pgrep instead.

Change-Id: I169b07553b171fcacb532bf58acc4200e270bfbb
2019-08-01 16:41:40 +02:00

33 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
if pgrep -f swift-proxy-server; then
conf=/etc/swift/proxy-server.conf
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then
echo "healthcheck is not available" >&2
exit 0
fi
# swift-proxy is still eventlet
bind_host=$(get_config_val $conf DEFAULT bind_ip 127.0.0.1)
bind_port=$(get_config_val $conf DEFAULT bind_port 8080)
# Add brackets if IPv6
if [[ $bind_host =~ ":" ]]; then
bind_host="[${bind_host}]"
fi
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
else
# TODO(mmagr): Remove this once swift_object_expirer container will start
# using swift-object-expirer kolla image
conf=/etc/swift/object-expirer.conf
cache=/var/cache/swift/object.recon
interval=$(get_config_val $conf object-expirer interval 300)
if ! healthcheck_file_modification $cache $interval; then
echo "Cache file $cache was not updated within interval of $interval seconds."
exit 1
fi
fi