Revert "Revert "Fix a couple of Swift healthchecks""

This reverts commit 750b562521b507aab555862f01b74e56f8119861.

Depending on the used procps version, the output of "ps -e" is width
limited and thus not matching the quite long process names. Using
"ps -ef" fixes this, along with a small hack in the piped grep to filter
out grep itself (pgrep itself is not working for this).

Removes swift-*-replicator because it does not seem to be used
anymore in any of the container build configurations.

This change removes the renames from the previous commit because they
are backwards incompatible depending on how the containers are built. We
use healthcheck from the openstack-tripleo-common-containers-base which
is a package. If this package does not have the new file names (or old
filenames) and the containers are built with a different version of
tripleo-common, the container builds fail.  So let's skip renaming of
files so that we can deal with that as a separate issue as a whole.

Change-Id: I3e58de46835307d4332b34d22d2895e6382292dd
This commit is contained in:
Alex Schultz 2021-01-06 15:46:53 +00:00
parent 1ffc610fec
commit 21fd04f038
9 changed files with 28 additions and 29 deletions

@ -117,7 +117,7 @@ get_url_from_vhost () {
check_swift_interval () { check_swift_interval () {
service=$1 service=$1
if pgrep -f swift-${service} >&3 2>&1; then if ps -ef | grep --quiet [s]wift-${service} >&3 2>&1; then
interval=$(get_config_val $conf $service interval 300) interval=$(get_config_val $conf $service interval 300)
last=`grep -o "\"replication_last\": [0-9]*" $cache | cut -f 2 -d " "` last=`grep -o "\"replication_last\": [0-9]*" $cache | cut -f 2 -d " "`
now=`date +%s` now=`date +%s`

@ -0,0 +1,6 @@
---
fixes:
- |
Fixes a few Swift healthchecks by using correct procps output filters. Also
merged a few healthcheck scripts because some containers do use the same
base images.

@ -1,8 +0,0 @@
#!/bin/bash
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
conf=/etc/swift/account-server.conf
cache=/var/cache/swift/account.recon
check_swift_interval account-replicator

@ -5,7 +5,7 @@
conf=/etc/swift/account-server.conf conf=/etc/swift/account-server.conf
cache=/var/cache/swift/account.recon cache=/var/cache/swift/account.recon
if ps -e | grep --quiet swift-account-server; then if ps -ef | grep --quiet [s]wift-account-server; then
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then
echo "healthcheck is not available" >&2 echo "healthcheck is not available" >&2
exit 0 exit 0
@ -15,4 +15,6 @@ if ps -e | grep --quiet swift-account-server; then
bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1)) bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1))
bind_port=$(get_config_val $conf DEFAULT bind_port 6002) bind_port=$(get_config_val $conf DEFAULT bind_port 6002)
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
elif ps -ef | grep --quiet [s]wift-account-replicator; then
check_swift_interval account-replicator
fi fi

@ -1,8 +0,0 @@
#!/bin/bash
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
conf=/etc/swift/container-server.conf
cache=/var/cache/swift/container.recon
check_swift_interval container-replicator

@ -5,7 +5,7 @@
conf=/etc/swift/container-server.conf conf=/etc/swift/container-server.conf
cache=/var/cache/swift/container.recon cache=/var/cache/swift/container.recon
if ps -e | grep --quiet swift-container-server; then if ps -ef | grep --quiet [s]wift-container-server; then
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then
echo "healthcheck is not available" >&2 echo "healthcheck is not available" >&2
exit 0 exit 0
@ -15,4 +15,6 @@ if ps -e | grep --quiet swift-container-server; then
bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1)) bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1))
bind_port=$(get_config_val $conf DEFAULT bind_port 6001) bind_port=$(get_config_val $conf DEFAULT bind_port 6001)
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
elif ps -ef | grep --quiet [s]wift-container-replicator; then
check_swift_interval container-replicator
fi fi

@ -1,8 +0,0 @@
#!/bin/bash
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
conf=/etc/swift/object-server.conf
cache=/var/cache/swift/object.recon
check_swift_interval object-replicator

@ -5,7 +5,7 @@
conf=/etc/swift/object-server.conf conf=/etc/swift/object-server.conf
cache=/var/cache/swift/object.recon cache=/var/cache/swift/object.recon
if ps -e | grep --quiet swift-object-server; then if ps -ef | grep --quiet [s]wift-object-server; then
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then
echo "healthcheck is not available" >&2 echo "healthcheck is not available" >&2
exit 0 exit 0
@ -15,4 +15,17 @@ if ps -e | grep --quiet swift-object-server; then
bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1)) bind_host=$(wrap_ipv6 $(get_config_val $conf DEFAULT bind_ip 127.0.0.1))
bind_port=$(get_config_val $conf DEFAULT bind_port 6000) bind_port=$(get_config_val $conf DEFAULT bind_port 6000)
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
elif ps -ef | grep --quiet [s]wift-object-replicator; then
check_swift_interval object-replicator
elif ps -ef | grep --quiet rsync; then
process='rsync'
args="${@:-873}"
if healthcheck_listen $process $args; then
exit 0
else
ports=${args// /,}
echo "There is no $process process, listening on port(s) $ports, running in the container."
exit 1
fi
fi fi

@ -2,7 +2,7 @@
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh . ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
if pgrep -f swift-proxy-server; then if ps -ef | grep --quiet [s]wift-proxy-server; then
conf=/etc/swift/proxy-server.conf conf=/etc/swift/proxy-server.conf
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then