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 |