Fix config parsing in memcached healthcheck
When memcached is configured to listen on multiple IP, or is configured with TLS-e, make sure the healthcheck parses the right IP to connect to and its associated port. Change-Id: Ia0baf8501884d9ed2324938c9acbb30d1687cf27 Closes-Bug: #1929881
This commit is contained in:
parent
86ba5af3a7
commit
3f84495b8f
@ -1,7 +1,21 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
|
. ${HEALTHCHECK_SCRIPTS:-/usr/share/openstack-tripleo-common/healthcheck}/common.sh
|
||||||
|
|
||||||
listen_addr=$(wrap_ipv6 $(awk 'match($0, /-l +([0-9a-fA-F\.\:]+) /, a) {print a[1]}' /etc/sysconfig/memcached))
|
# if memcached has TLS enabled, look for a notls ip entry in the options
|
||||||
|
listen_addr=$(awk 'match($0, /notls:([0-9a-fA-F\.\:]+):11211[, ]/, a) {print a[1]}' /etc/sysconfig/memcached)
|
||||||
|
|
||||||
echo "version" | socat - TCP:$listen_addr:11211 1>/dev/null
|
if [ -z "$listen_addr" ]; then
|
||||||
|
# otherwise look for the first ip available among all the possible ones
|
||||||
|
# passed to the -l option
|
||||||
|
listen_addr=$(awk 'match($0, /-l +([0-9a-fA-F\.\:]+)[, ]/, a) {print a[1]}' /etc/sysconfig/memcached)
|
||||||
|
# get the configured memcached port or the default one
|
||||||
|
port=$(awk -F= '$1=="PORT" {gsub(/"/, "",$2); print $2}' /etc/sysconfig/memcached)
|
||||||
|
port=${port:-11211}
|
||||||
|
else
|
||||||
|
# with TLS-e, TripleO always exposes the notls IP on port 11211
|
||||||
|
port=11211
|
||||||
|
fi
|
||||||
|
listen_addr=$(wrap_ipv6 $listen_addr)
|
||||||
|
|
||||||
|
echo "version" | socat - TCP:$listen_addr:$port 1>/dev/null
|
||||||
exit $?
|
exit $?
|
||||||
|
Loading…
Reference in New Issue
Block a user