aboutsummaryrefslogtreecommitdiff
path: root/docker/examples/docker-compose-cluster/scripts/lib/functions.sh
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2017-09-25 17:48:57 +0200
committerChristophe Romain <christophe.romain@process-one.net>2017-09-25 17:48:57 +0200
commitb8ab80d1f373165239b3861b992e24411cc60310 (patch)
tree84dd73cbe36c9504a8c411869ca68324abd2064b /docker/examples/docker-compose-cluster/scripts/lib/functions.sh
parentAdd mod_avatar to the example configuration (diff)
Sync containers from rroemhild and add instructions in README (#1655)
Diffstat (limited to 'docker/examples/docker-compose-cluster/scripts/lib/functions.sh')
-rw-r--r--docker/examples/docker-compose-cluster/scripts/lib/functions.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/docker/examples/docker-compose-cluster/scripts/lib/functions.sh b/docker/examples/docker-compose-cluster/scripts/lib/functions.sh
new file mode 100644
index 000000000..2ff16f659
--- /dev/null
+++ b/docker/examples/docker-compose-cluster/scripts/lib/functions.sh
@@ -0,0 +1,37 @@
+# overwrite get_nodename to discover hostname from DNS
+get_nodename() {
+ local hostname=${HOSTNAME}
+
+ # get hostname from dns
+ if ( is_true ${USE_DNS} ); then
+ # wait for dns registration
+ sleep 1
+
+ nodename=$(discover_dns_hostname ${HOSTIP})
+
+ is_set ${nodename} \
+ && hostname=${nodename}
+ fi
+
+ echo $hostname
+ return 0
+}
+
+
+# discover hostname from dns with a reverse lookup
+discover_dns_hostname() {
+ local hostip=$1
+
+ # try to get the hostname from dns
+ local dnsname=$(drill -x ${hostip} \
+ | grep PTR \
+ | awk '{print $5}' \
+ | grep -E "^[a-zA-Z0-9]+([-._]?[a-zA-Z0-9]+)*.[a-zA-Z]+\.$" \
+ | cut -d '.' -f1 \
+ | tail -1)
+
+ is_set ${dnsname} \
+ && echo ${dnsname}
+
+ return 0
+}