diff --git a/healthcheck/common.sh b/healthcheck/common.sh index 2ca9c6aac..8738f7d1d 100755 --- a/healthcheck/common.sh +++ b/healthcheck/common.sh @@ -126,7 +126,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` diff --git a/healthcheck/releasenotes/notes/swift-fix-healthchecks-b3a02139230f4258.yaml b/healthcheck/releasenotes/notes/swift-fix-healthchecks-b3a02139230f4258.yaml new file mode 100644 index 000000000..f91e2486a --- /dev/null +++ b/healthcheck/releasenotes/notes/swift-fix-healthchecks-b3a02139230f4258.yaml @@ -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. diff --git a/healthcheck/swift-account-replicator b/healthcheck/swift-account-replicator deleted file mode 100755 index 1e69cc1c8..000000000 --- a/healthcheck/swift-account-replicator +++ /dev/null @@ -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 diff --git a/healthcheck/swift-account-server b/healthcheck/swift-account-server index f89fd1dc7..5d3092d07 100755 --- a/healthcheck/swift-account-server +++ b/healthcheck/swift-account-server @@ -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 diff --git a/healthcheck/swift-container-replicator b/healthcheck/swift-container-replicator deleted file mode 100755 index 34ef269ee..000000000 --- a/healthcheck/swift-container-replicator +++ /dev/null @@ -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 diff --git a/healthcheck/swift-container-server b/healthcheck/swift-container-server index 903c3b905..fe77c2de1 100755 --- a/healthcheck/swift-container-server +++ b/healthcheck/swift-container-server @@ -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 diff --git a/healthcheck/swift-object-replicator b/healthcheck/swift-object-replicator deleted file mode 100755 index c165a373b..000000000 --- a/healthcheck/swift-object-replicator +++ /dev/null @@ -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 diff --git a/healthcheck/swift-object-server b/healthcheck/swift-object-server index 21b97991e..896aae672 100755 --- a/healthcheck/swift-object-server +++ b/healthcheck/swift-object-server @@ -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 diff --git a/healthcheck/swift-proxy b/healthcheck/swift-proxy index 7d03938ca..b7fbfdc9b 100755 --- a/healthcheck/swift-proxy +++ b/healthcheck/swift-proxy @@ -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