Fix a couple of Swift healthchecks
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). Also merged server and replicator healthcheck scripts into single scripts. Kolla doesn't use separate templates for these images, thus the replicator images include the server scripts. This has been fixed using conditional checks on the running processes in the container. Same for the rsync container, which uses the obect image as well. Change-Id: I58124fec226d5e765f752d306b411162666d4817
This commit is contained in:
parent
2b3c872da0
commit
4cd3bd8fdc
@ -1,6 +1,6 @@
|
||||
tcib_actions:
|
||||
- run: dnf -y install {{ tcib_packages['common'] | join(' ') }} && dnf clean all && rm -rf /var/cache/dnf
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-account-server /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-account /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
tcib_packages:
|
||||
common:
|
||||
- openstack-swift-account
|
||||
|
@ -1,6 +1,6 @@
|
||||
tcib_actions:
|
||||
- run: dnf -y install {{ tcib_packages['common'] | join(' ') }} && dnf clean all && rm -rf /var/cache/dnf
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-container-server /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-container /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
tcib_packages:
|
||||
common:
|
||||
- openstack-swift-container
|
||||
|
@ -1,6 +1,6 @@
|
||||
tcib_actions:
|
||||
- run: dnf -y install {{ tcib_packages['common'] | join(' ') }} && dnf clean all && rm -rf /var/cache/dnf
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-object-server /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
- run: ln -s /usr/share/openstack-tripleo-common/healthcheck/swift-object /openstack/healthcheck && chmod a+rx /openstack/healthcheck
|
||||
tcib_packages:
|
||||
common:
|
||||
- openstack-swift-object
|
||||
|
@ -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`
|
||||
|
@ -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.
|
@ -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
|
@ -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/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
|
@ -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/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
|
@ -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
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user