* debian/pg_createconfig_patroni: Add --endpoint option for explicit setting

of VIP_ENDPOINT, make dcs.yml parsing a bit more robust and add sanity
    checking for VIP_ENDPOINT.
This commit is contained in:
Michael Banck 2019-11-16 15:43:03 +01:00
parent f6b94358ba
commit d0aa441487
2 changed files with 21 additions and 4 deletions

5
debian/changelog vendored
View file

@ -1,6 +1,9 @@
patroni (1.6.1-2) UNRELEASED; urgency=medium patroni (1.6.1-2) UNRELEASED; urgency=medium
* [ Michael Banck ]
* debian/pg_createconfig_patroni: Add --endpoint option for explicit setting
of VIP_ENDPOINT, make dcs.yml parsing a bit more robust and add sanity
checking for VIP_ENDPOINT.
-- Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org> Fri, 15 Nov 2019 19:49:57 +0100 -- Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org> Fri, 15 Nov 2019 19:49:57 +0100

View file

@ -23,6 +23,10 @@ case $i in
VIP_IP="${i#*=}" VIP_IP="${i#*=}"
shift # past argument=value shift # past argument=value
;; ;;
--endpoint=*)
DCS_ENDPOINT="${i#*=}"
shift # past argument=value
;;
*) *)
# unknown option # unknown option
;; ;;
@ -110,10 +114,20 @@ if [ -n "$VIP_IP" ]; then
echo "DCS type could not be determined from /etc/patroni/dcs.yml, cannot write VIP file" echo "DCS type could not be determined from /etc/patroni/dcs.yml, cannot write VIP file"
exit 1 exit 1
fi fi
DCS_ENDPOINT="$(egrep -v '^[[:space:]]*$|^ *#' /etc/patroni/dcs.yml | grep 'host' | sed -r -e s/.*host:// -e s/-// -e 's/ //g' -e 's/^([0-9])/http:\/\/\1/')"
if [ -z "$DCS_ENDPOINT" ]; then if [ -z "$DCS_ENDPOINT" ]; then
echo "DCS endpoint URL could not be determined from /etc/patroni/dcs.yml, cannot write VIP file" DCS_ENDPOINT="$(egrep -v '^[[:space:]]*$|^ *#' /etc/patroni/dcs.yml | egrep '(host|-)' | egrep '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+' | sed -r -e s/.*host:// -e s/-// -e 's/ //g' -e 's/^([0-9])/http:\/\/\1/')"
exit 1 if [ -z "$DCS_ENDPOINT" ]; then
echo "DCS endpoint URL could not be determined from /etc/patroni/dcs.yml and --endpoint not provided, cannot write VIP file"
exit 1
fi
if [ $(echo "$DCS_ENDPOINT" | wc -l) != 1 ]; then
echo "DCS endpoint URL could not be determined from /etc/patroni/dcs.yml and --endpoint not provided, cannot write VIP file"
exit 1
fi
fi
if ! $(echo "$DCS_ENDPOINT" | egrep -q '^http.*://[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+:[[:digit:]]+$'); then
echo "DCS endpoint URL not in 'http://1.2.3.4:1234' format, cannot write VIP file"
exit 1
fi fi
LISTEN_VIP=",$VIP_IP" LISTEN_VIP=",$VIP_IP"
else else