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

This reverts commit 750b562521.

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

View File

@ -117,7 +117,7 @@ get_url_from_vhost () {
check_swift_interval () {
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)
last=`grep -o "\"replication_last\": [0-9]*" $cache | cut -f 2 -d " "`
now=`date +%s`

View File

@ -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.

View File

@ -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

View File

@ -5,7 +5,7 @@
conf=/etc/swift/account-server.conf
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
echo "healthcheck is not available" >&2
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_port=$(get_config_val $conf DEFAULT bind_port 6002)
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
elif ps -ef | grep --quiet [s]wift-account-replicator; then
check_swift_interval account-replicator
fi

View File

@ -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

View File

@ -5,7 +5,7 @@
conf=/etc/swift/container-server.conf
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
echo "healthcheck is not available" >&2
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_port=$(get_config_val $conf DEFAULT bind_port 6001)
healthcheck_curl http://${bind_host}:${bind_port}/healthcheck
elif ps -ef | grep --quiet [s]wift-container-replicator; then
check_swift_interval container-replicator
fi

View File

@ -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

View File

@ -5,7 +5,7 @@
conf=/etc/swift/object-server.conf
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
echo "healthcheck is not available" >&2
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_port=$(get_config_val $conf DEFAULT bind_port 6000)
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

View File

@ -2,7 +2,7 @@
. ${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
if ! crudini --get $conf pipeline:main pipeline | grep -q healthcheck; then