summaryrefslogtreecommitdiffstats
path: root/tools/scripts/ansible-tower-service
blob: 1d2f2beec4d3c0a55a648eb6f24f6864aab60120 (plain)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash

# Default configured services
if [ -e /etc/debian_version ]; then
    TOWER_CONFIG="/etc/default/ansible-tower"
else
    TOWER_CONFIG="/etc/sysconfig/ansible-tower"
fi

# Load default configuration
[ -e "${TOWER_CONFIG}" ] && . "${TOWER_CONFIG}"

service_action() {
    SERVICES=$TOWER_SERVICES

    for svc in ${SERVICES}; do

        service ${svc} $1
        this_return=$?
        if [ $this_return -gt $worst_return ]; then
            worst_return=$this_return
        fi
        # Allow supervisor time to cleanup child pids (ubuntu only)
        if [[ ${svc} == supervisor* && ${1} == stop && -e /etc/debian_version ]]; then
            S_PID=$(pidof -x supervisord)
            echo "Waiting to allow supervisor time to cleanup ... pid ${S_PID}"
            if [ "${S_PID}" ]; then
                i=0
                while kill -0 "${S_PID}" 2> /dev/null; do
                    if [ $i = '60' ]; then
                        break;
                    else
                        if [ $i == '0' ]; then
                            echo -n " ... waiting"
                        else
                            echo -n "."
                        fi
                        i=$(($i+1))
                        sleep 1
                    fi
                done
            fi
        fi
    done
}

usage() {
    echo "Ansible Tower service helper utility"
    echo "Usage: $0 {start|stop|restart|status}"
}

worst_return=0
case "$1" in
    help | -help | --help | -h)
        usage
        ;;
    start)
          echo "Starting Tower"
          service_action start
          ;;
    stop)
        echo "Stopping Tower"
        service_action stop
        ;;
    restart)
        echo "Restarting Tower"
        service_action stop
        service_action start
        ;;
    status)
        echo "Showing Tower Status"
        service_action status
        ;;
    *)
        usage
        worst_return=1
esac
exit $worst_return