aboutsummaryrefslogtreecommitdiff
path: root/docker/examples/docker-compose-cluster/scripts/lib/functions.sh
blob: 2ff16f659fab923f935c8e22c53b652be0d1a317 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
}