Statistics
| Branch: | Tag: | Revision:

root / snf-tools / conf / snf-burnin-run.sh @ f2e00c1f

History | View | Annotate | Download (3.5 kB)

1 076a2dc0 Ilias Tsitsimpis
#!/bin/bash
2 56d5c612 John Giannelos
3 e6ec7e85 Ilias Tsitsimpis
4 e6ec7e85 Ilias Tsitsimpis
# --------------------------------------------------------------------
5 e6ec7e85 Ilias Tsitsimpis
# Configure script parameters
6 e6ec7e85 Ilias Tsitsimpis
7 e6ec7e85 Ilias Tsitsimpis
# ----------------------------------------
8 e6ec7e85 Ilias Tsitsimpis
# Here we define the tokens for each user burnin will
9 e6ec7e85 Ilias Tsitsimpis
# test along with an alias for each token.
10 e6ec7e85 Ilias Tsitsimpis
# For each user define an ALIAS, his TOKEN, an IMAGEID and a FLAVOR.
11 f2e00c1f Ilias Tsitsimpis
USERS=(
12 f2e00c1f Ilias Tsitsimpis
    "burnin1" "token to be used"
13 f2e00c1f Ilias Tsitsimpis
    "name:Image name (reg expr)" "name:Flavor name (reg expr)"
14 e6ec7e85 Ilias Tsitsimpis
15 f2e00c1f Ilias Tsitsimpis
    "burnin2" "token to be used"
16 f2e00c1f Ilias Tsitsimpis
    "name:Image name (reg expr)" "name:Flavor name (reg expr)"
17 e6ec7e85 Ilias Tsitsimpis
18 f2e00c1f Ilias Tsitsimpis
    "burnin3" "token to be used"
19 f2e00c1f Ilias Tsitsimpis
    "name:Image name (reg expr)" "name:Flavor name (reg expr)"
20 e6ec7e85 Ilias Tsitsimpis
  )
21 e6ec7e85 Ilias Tsitsimpis
22 e6ec7e85 Ilias Tsitsimpis
# ----------------------------------------
23 e6ec7e85 Ilias Tsitsimpis
# Here we define the email parameters
24 e6ec7e85 Ilias Tsitsimpis
# Email Tag
25 e6ec7e85 Ilias Tsitsimpis
TAG="[synnefo.org-burnin]"
26 e6ec7e85 Ilias Tsitsimpis
# Email Recipients
27 e6ec7e85 Ilias Tsitsimpis
RECIPIENTS="burnin@synnefo.org"
28 e6ec7e85 Ilias Tsitsimpis
# Subject for a successful burnin run
29 e6ec7e85 Ilias Tsitsimpis
# (will be "$TAG ($ALIAS) $SUCCESS_SUBJECT" for each burnin instance)
30 e6ec7e85 Ilias Tsitsimpis
SUCCESS_SUBJECT="Burnin Succeeded"
31 e6ec7e85 Ilias Tsitsimpis
# Subject for a failed burnin run
32 e6ec7e85 Ilias Tsitsimpis
# (will be "$TAG ($ALIAS) $FAILURE_SUBJECT" for each burnin instance)
33 e6ec7e85 Ilias Tsitsimpis
FAILURE_SUBJECT="Burnin Failed"
34 e6ec7e85 Ilias Tsitsimpis
35 e6ec7e85 Ilias Tsitsimpis
# ----------------------------------------
36 e6ec7e85 Ilias Tsitsimpis
# Some burnin parameters
37 6ce03057 Giorgos Korfiatis
AUTH_URL="https://accounts.synnefo.org/identity/v2.0"
38 e6ec7e85 Ilias Tsitsimpis
39 e6ec7e85 Ilias Tsitsimpis
# ----------------------------------------
40 e6ec7e85 Ilias Tsitsimpis
# Burnin executable and log files
41 e6ec7e85 Ilias Tsitsimpis
Burnin="snf-burnin"
42 e6ec7e85 Ilias Tsitsimpis
# Log Folder will be $LOGFOLDER/$ALIAS for each burnin instance
43 f2e00c1f Ilias Tsitsimpis
LOGFOLDER="/var/log/burnin/"
44 e6ec7e85 Ilias Tsitsimpis
# Lock file (we don't want two instances of this script)
45 e6ec7e85 Ilias Tsitsimpis
LOCKFILE="/tmp/burnin.lockfile"
46 e6ec7e85 Ilias Tsitsimpis
47 e6ec7e85 Ilias Tsitsimpis
48 e6ec7e85 Ilias Tsitsimpis
# --------------------------------------------------------------------
49 e6ec7e85 Ilias Tsitsimpis
# Script functions
50 e6ec7e85 Ilias Tsitsimpis
51 e6ec7e85 Ilias Tsitsimpis
run_burnin() {
52 e6ec7e85 Ilias Tsitsimpis
    local alias="$1"
53 e6ec7e85 Ilias Tsitsimpis
    local token="$2"
54 e6ec7e85 Ilias Tsitsimpis
    local image="$3"
55 e6ec7e85 Ilias Tsitsimpis
    local flavor="$4"
56 e6ec7e85 Ilias Tsitsimpis
    local success_subject="$TAG ($alias) $SUCCESS_SUBJECT"
57 e6ec7e85 Ilias Tsitsimpis
    local failure_subject="$TAG ($alias) $FAILURE_SUBJECT"
58 e6ec7e85 Ilias Tsitsimpis
    local logfolder="$LOGFOLDER/$alias"
59 e6ec7e85 Ilias Tsitsimpis
    local error_summary
60 e6ec7e85 Ilias Tsitsimpis
    local stale_subject
61 e6ec7e85 Ilias Tsitsimpis
62 e6ec7e85 Ilias Tsitsimpis
    # Check for stale servers/networks
63 f2e00c1f Ilias Tsitsimpis
    $Burnin --token="$token" --auth-url="$AUTH_URL" --show-stale --quiet
64 f2e00c1f Ilias Tsitsimpis
    if [ $? -eq 0 ]; then
65 e6ec7e85 Ilias Tsitsimpis
        # No stale servers/networks found. Run burnin
66 f2e00c1f Ilias Tsitsimpis
        results=$($Burnin \
67 f2e00c1f Ilias Tsitsimpis
            --token="$token" \
68 f2e00c1f Ilias Tsitsimpis
            --auth-url="$AUTH_URL" \
69 f2e00c1f Ilias Tsitsimpis
            --images="$image" \
70 f2e00c1f Ilias Tsitsimpis
            --flavors="$flavor" \
71 f2e00c1f Ilias Tsitsimpis
            --log-folder="$logfolder" \
72 f2e00c1f Ilias Tsitsimpis
            --final-report-only \
73 f2e00c1f Ilias Tsitsimpis
            2>&1)
74 f2e00c1f Ilias Tsitsimpis
75 f2e00c1f Ilias Tsitsimpis
        if [ $? -ne 0 ]; then
76 f2e00c1f Ilias Tsitsimpis
            # Burnin failed
77 f2e00c1f Ilias Tsitsimpis
            # Send email
78 f2e00c1f Ilias Tsitsimpis
            error_summary=$(echo "$results" | \
79 f2e00c1f Ilias Tsitsimpis
                sed -n 's/  \* Failed: \(.*\)/\1/p')
80 f2e00c1f Ilias Tsitsimpis
            echo "$results" | /usr/bin/mailx -E \
81 e6ec7e85 Ilias Tsitsimpis
                -s "$failure_subject: $error_summary" $RECIPIENTS
82 e6ec7e85 Ilias Tsitsimpis
#        else
83 f2e00c1f Ilias Tsitsimpis
#            echo "$results" | /usr/bin/mailx -E \
84 e6ec7e85 Ilias Tsitsimpis
#                -s "$success_subject" $RECIPIENTS
85 e6ec7e85 Ilias Tsitsimpis
        fi
86 e6ec7e85 Ilias Tsitsimpis
    else
87 e6ec7e85 Ilias Tsitsimpis
        # Burnin found stale servers/networks. Try to clean them
88 f2e00c1f Ilias Tsitsimpis
        results=$($Burnin --token="$token" --auth-url="$AUTH_URL" \
89 f2e00c1f Ilias Tsitsimpis
            --delete-stale --log-folder="$logfolder" --final-report-only 2>&1)
90 e6ec7e85 Ilias Tsitsimpis
        if [ $? -ne 0 ]; then
91 e6ec7e85 Ilias Tsitsimpis
            stale_subject="$failure_subject: Couldn't delete stale servers/networks"
92 e6ec7e85 Ilias Tsitsimpis
        else
93 e6ec7e85 Ilias Tsitsimpis
            stale_subject="$success_subject: Stale servers/networks deleted"
94 e6ec7e85 Ilias Tsitsimpis
        fi
95 e6ec7e85 Ilias Tsitsimpis
96 e6ec7e85 Ilias Tsitsimpis
        # Send mail
97 f2e00c1f Ilias Tsitsimpis
        echo "$results" | /usr/bin/mailx -E \
98 e6ec7e85 Ilias Tsitsimpis
            -s "$stale_subject" $RECIPIENTS
99 e6ec7e85 Ilias Tsitsimpis
    fi
100 e6ec7e85 Ilias Tsitsimpis
}
101 e6ec7e85 Ilias Tsitsimpis
102 e6ec7e85 Ilias Tsitsimpis
103 e6ec7e85 Ilias Tsitsimpis
# --------------------------------------------------------------------
104 e6ec7e85 Ilias Tsitsimpis
# For each user run burnin function
105 e6ec7e85 Ilias Tsitsimpis
106 e6ec7e85 Ilias Tsitsimpis
(
107 e6ec7e85 Ilias Tsitsimpis
    flock -xn 200 || exit 1
108 e6ec7e85 Ilias Tsitsimpis
109 f2e00c1f Ilias Tsitsimpis
    set "${USERS[@]}"
110 e6ec7e85 Ilias Tsitsimpis
111 e6ec7e85 Ilias Tsitsimpis
    while [ -n "$1" ]; do
112 e6ec7e85 Ilias Tsitsimpis
        run_burnin "$1" "$2" "$3" "$4" &
113 e6ec7e85 Ilias Tsitsimpis
        shift 4
114 e6ec7e85 Ilias Tsitsimpis
    done
115 e6ec7e85 Ilias Tsitsimpis
116 e6ec7e85 Ilias Tsitsimpis
    wait
117 e6ec7e85 Ilias Tsitsimpis
) 200>$LOCKFILE