-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathg5k-checks-reset.sh
75 lines (59 loc) · 1.31 KB
/
g5k-checks-reset.sh
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
#!/bin/bash
set -u
trap 'trap_error_handler ${LINENO} $?' ERR
OUTPUT_DIR="/tmp/g5k-check-reset"
NODES=
help () {
echo """Usage:
-s SITE
-c CLUSTER
-n NODES
-o OUTPUT_DIR to put the yaml file, default : $OUTPUT_DIR"""
}
trap_error_handler () {
echo "$0: line $1 exit $2"
}
while getopts "s:c:n:o:h" opt;
do
case $opt in
s)
SITE=$OPTARG
;;
c)
CLUSTER=$OPTARG
;;
n)
NODES=($(nodeset -e $OPTARG))
;;
o)
OUTPUT_DIR=$OPTARG
;;
h)
help
exit 0
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
mkdir -p $OUTPUT_DIR
[[ ! -z $NODES ]] || NODES=($(nodes5k -s $SITE -c $CLUSTER))
NODES_F=($(echo ${NODES[@]} | nodeset -f))
CLUSH_CMD="clush -w ${NODES_F[@]}"
$CLUSH_CMD "g5k-checks -c <(echo -e "testlist: \n - all\n") -m api -e os"
$CLUSH_CMD --rcopy /tmp/*.yaml --dest $OUTPUT_DIR
cd $OUTPUT_DIR
for name in *
do
mv $name ${name#*.yaml.}.yaml
done
sed -sri "s/^(.*)$/ \1/" *
xargs -d' ' -a <(echo ${NODES[@]} | tr -d '\n') -Inode sed -i -e '1 s/^.*$/---\nnode:/' node.yaml
exit
cd -