
This patch is adding health checks for background processes. The check is performed by comparing recon cache file modification. This is far from ideal, because recon files are shared via services of same type. But it's the only way to at least partialy check correct behaviour for background processes. In future there we should add timestamp info to each recon file for all services using the recon file. Then we would be able to find out if all background services are updating their caches in timely fashion and stay within the border of containers. Co-Authored-By: Thiago da Silva <thiago@redhat.com> Change-Id: Ib6fad8311b5a728914ce9df9122194c5f7036be7
33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
|
|
|
|
if ps -e | grep --quiet 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
|