summaryrefslogtreecommitdiffstats
path: root/replay
blob: 617c054efd6f47c8ba1271082218a743dfa4db57 (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
79
80
81
82
83
84
85
86
87
#!/usr/bin/bash

###
# User variables, you may edit these variables
###
SOURCES=$HOME/park-admin/playbooks-ansible
WORKDIR=/tmp
COUNTLIMIT=10
# Availables options are: 'clearnet' or 'tornetwork'
NETWORK=clearnet
FORK=8
TIMEOUT=240
FLAGS="--force-handlers -f $FORK -T $TIMEOUT"
###
# Stop editing, it is ready
###


# sortie formatée des logs
OK="\e[0m[  \e[92mOK\e[0m  ]"
ERROR="\e[0m[  \e[91mERROR\e[0m  ]"
INFO="\e[0m[  \e[93mINFO\e[0m  ]"


###
# User command-line options
###
while [[ $# -gt 0 ]]
do
    case "$1" in
        -d|--debug)
            COUNTLIMIT=1
            shift
            ;;
        *)
            echo "Usage: $0 [-d|--debug]"
            exit 3
            ;;
    esac
done
###
# End
###


REPLAY=true
COUNT=0

pushd $WORKDIR >/dev/null

if [[ $NETWORK == "clearnet" ]]
then
    CMDLINE=ansible-playbook
    HOSTFILE=$SOURCES/hosts.net
elif [[ $NETWORK == "tornetwork" ]]
then
    CMDLINE="torsocks ansible-playbook"
    HOSTFILE=$SOURCES/hosts.tor
fi

# need cleanup before starting loop
rm -f $SOURCES/site.retry

while [[ $REPLAY == "true" ]] && [[ $COUNT -lt $COUNTLIMIT ]]
do
    if [[ -f $SOURCES/site.retry ]]
    then
        LIMIT="--limit @${SOURCES}/site.retry"
        echo -e "$OK retry file found"
    else
        LIMIT=""
        echo -e "$INFO retry file not found"
    fi
    if ( $CMDLINE $FLAGS -i $HOSTFILE $LIMIT $SOURCES/site.yml )
    then
        REPLAY=false
    else
        # no infinite loop
        COUNT=$((COUNT + 1))
    fi
done

popd >/dev/null

echo -e "$OK End of Replay"
echo -e "$INFO Replay launched $COUNT times"
echo -e "$OK Have a nice day $USER !"