Revision 01c23d75 htools/live-test.sh

b/htools/live-test.sh
1 1
#!/bin/bash
2 2

  
3
# Copyright (C) 2009, 2010, 2011 Google Inc.
3
# Copyright (C) 2009, 2010, 2011, 2012 Google Inc.
4 4

  
5 5
# This program is free software; you can redistribute it and/or modify
6 6
# it under the terms of the GNU General Public License as published by
......
35 35
: ${RAPI:=localhost}
36 36
GROUP=${GROUP:+-G $GROUP}
37 37

  
38
. $(dirname $0)/cli-tests-defs.sh
39

  
38 40
T=`mktemp -d`
39 41
trap 'rm -rf $T' EXIT
40 42
echo Using $T as temporary dir
41 43

  
42 44
echo Checking command line
43
for prog in hscan hbal hail hspace; do
44
    ./$prog --version
45
    ./$prog --help
46
    ! ./$prog --no-such-option
45
for prog in $ALL_ROLES; do
46
  $prog --version
47
  $prog --help >/dev/null
48
  ! $prog --no-such-option 2>/dev/null
47 49
done
48 50

  
49 51
echo Testing hscan/rapi
50
./hscan -d$T $RAPI -p
52
hscan -d$T $RAPI -p
51 53
echo Testing hscan/luxi
52
./hscan -d$T -L$LUXI -p
54
hscan -d$T -L$LUXI -p
53 55
echo Comparing hscan results...
54 56
diff -u $T/$RAPI.data $T/LOCAL.data
55 57

  
......
58 60

  
59 61

  
60 62
echo Testing hbal/luxi
61
./hbal -L$LUXI $GROUP -p --print-instances -C$T/hbal-luxi-cmds.sh
63
hbal -L$LUXI $GROUP -p --print-instances -C$T/hbal-luxi-cmds.sh
62 64
bash -n $T/hbal-luxi-cmds.sh
63 65
echo Testing hbal/rapi
64
./hbal -m$RAPI $GROUP -p --print-instances -C$T/hbal-rapi-cmds.sh
66
hbal -m$RAPI $GROUP -p --print-instances -C$T/hbal-rapi-cmds.sh
65 67
bash -n $T/hbal-rapi-cmds.sh
66 68
echo Testing hbal/text
67
./hbal -t$T/$RAPI.data $GROUP -p --print-instances -C$T/hbal-text-cmds.sh
69
hbal -t$T/$RAPI.data $GROUP -p --print-instances -C$T/hbal-text-cmds.sh
68 70
bash -n $T/hbal-text-cmds.sh
69 71
echo Comparing hbal results
70 72
diff -u $T/hbal-luxi-cmds.sh $T/hbal-rapi-cmds.sh
......
72 74

  
73 75

  
74 76
echo Testing hbal/text with evacuation mode
75
./hbal -t$T/$RAPI.data $GROUP -E
77
hbal -t$T/$RAPI.data $GROUP -E
76 78
echo Testing hbal/text with no disk moves
77
./hbal -t$T/$RAPI.data $GROUP --no-disk-moves
79
hbal -t$T/$RAPI.data $GROUP --no-disk-moves
78 80
echo Testing hbal/text with no instance moves
79
./hbal -t$T/$RAPI.data $GROUP --no-instance-moves
81
hbal -t$T/$RAPI.data $GROUP --no-instance-moves
80 82
echo Testing hbal/text with offline node mode
81
./hbal -t$T/$RAPI.data $GROUP -O$FN
83
hbal -t$T/$RAPI.data $GROUP -O$FN
82 84
echo Testing hbal/text with utilization data
83 85
echo "$FI 2 2 2 2" > $T/util.data
84
./hbal -t$T/$RAPI.data $GROUP -U $T/util.data
86
hbal -t$T/$RAPI.data $GROUP -U $T/util.data
85 87
echo Testing hbal/text with bad utilization data
86 88
echo "$FI 2 a 3b" > $T/util.data
87
! ./hbal -t$T/$RAPI.data $GROUP -U $T/util.data
89
! hbal -t$T/$RAPI.data $GROUP -U $T/util.data
88 90
echo Testing hbal/text with instance exclusion/selection
89
./hbal -t$T/$RAPI.data $GROUP --exclude-instances=$FI
90
./hbal -t$T/$RAPI.data $GROUP --select-instances=$FI
91
! ./hbal -t$T/$RAPI.data --exclude-instances=no_such_instance
92
! ./hbal -t$T/$RAPI.data --select-instances=no_such_instance
91
hbal -t$T/$RAPI.data $GROUP --exclude-instances=$FI
92
hbal -t$T/$RAPI.data $GROUP --select-instances=$FI
93
! hbal -t$T/$RAPI.data --exclude-instances=no_such_instance
94
! hbal -t$T/$RAPI.data --select-instances=no_such_instance
93 95
echo Testing hbal/text with tag exclusion
94
./hbal -t $T/$RAPI.data $GROUP --exclusion-tags=no_such_tag
96
hbal -t $T/$RAPI.data $GROUP --exclusion-tags=no_such_tag
95 97
echo Testing hbal multiple backend failure
96
! ./hbal -t $T/$RAPI.data -L$LUXI
98
! hbal -t $T/$RAPI.data -L$LUXI
97 99
echo Testing hbal no backend failure
98
! ./hbal
100
! hbal
99 101

  
100 102
echo Getting data files for hail
101 103
for dtemplate in plain drbd; do
......
109 111
    $FN > $T/h-evacuate.json
110 112
for dtemplate in plain drbd; do
111 113
  echo Testing hail/allocate-$dtemplate
112
  ./hail $T/h-alloc-$dtemplate.json
114
  hail $T/h-alloc-$dtemplate.json
113 115
done
114 116
echo Testing hail/relocate for instance $FI
115
./hail $T/h-reloc.json
117
hail $T/h-reloc.json
116 118
echo Testing hail/evacuate for node $FN
117
./hail $T/h-evacuate.json
119
hail $T/h-evacuate.json
118 120

  
119 121
HOUT="$T/hspace.out"
120 122

  
121 123
check_hspace_out() {
122
    set -u
123
    set -e
124
    source "$HOUT"
125
    echo ALLOC_INSTANCES=$HTS_ALLOC_INSTANCES
126
    echo TSPEC=$HTS_TSPEC
127
    echo OK=$HTS_OK
124
  set -u
125
  set -e
126
  source "$HOUT"
127
  echo ALLOC_INSTANCES=$HTS_ALLOC_INSTANCES
128
  echo TSPEC=$HTS_TSPEC
129
  echo OK=$HTS_OK
128 130
}
129 131

  
130 132
TIER="--tiered 102400,8192,2"
131 133
SIMU="--simu=preferred,10,6835937,32768,4"
132 134
echo Testing hspace/luxi
133
./hspace -L$LUXI $TIER -v > $HOUT
135
hspace -L$LUXI $TIER -v > $HOUT
134 136
( check_hspace_out ) || exit 1
135 137
echo Testing hspace/rapi
136
./hspace -m$RAPI $TIER -v > $HOUT
138
hspace -m$RAPI $TIER -v > $HOUT
137 139
( check_hspace_out ) || exit 1
138 140
echo Testing hspace/text
139
./hspace -t$T/$RAPI.data $TIER -v > $HOUT
141
hspace -t$T/$RAPI.data $TIER -v > $HOUT
140 142
( check_hspace_out ) || exit 1
141 143
echo Testing hspace/simu
142 144
# ~6T disk space, 32G ram, 4 VCPUs
143
./hspace $SIMU $TIER -v > $HOUT
145
hspace $SIMU $TIER -v > $HOUT
144 146
( check_hspace_out ) || exit 1
145 147
# Wrong tiered spec input
146
! ./hspace $SIMU --tiered 1,2,3x
147
! ./hspace $SIMU --tiered 1,2,x
148
! ./hspace $SIMU --tiered 1,2
148
! hspace $SIMU --tiered 1,2,3x
149
! hspace $SIMU --tiered 1,2,x
150
! hspace $SIMU --tiered 1,2
149 151
# Wrong simu spec
150
! ./hspace --simu=1,2,x
152
! hspace --simu=1,2,x
151 153

  
152 154
echo All OK

Also available in: Unified diff