Statistics
| Branch: | Tag: | Revision:

root / test / hs / shelltests / htools-hail.test @ 74ff6aed

History | View | Annotate | Download (5.3 kB)

1
# test that on invalid files it can't parse the request
2
./test/hs/hail /dev/null
3
>>>2 /Invalid JSON/
4
>>>= !0
5

    
6
# another invalid example
7
echo '[]' | ./test/hs/hail -
8
>>>2 /Unable to read JSObject/
9
>>>= !0
10

    
11
# empty dict
12
echo '{}' | ./test/hs/hail -
13
>>>2 /key 'request' not found/
14
>>>= !0
15

    
16
echo '{"request": 0}' | ./test/hs/hail -
17
>>>2 /key 'request'/
18
>>>= !0
19

    
20
./test/hs/hail $TESTDATA_DIR/hail-invalid-reloc.json
21
>>>2 /key 'name': Unable to read String/
22
>>>= !0
23

    
24
# and now start the real tests
25
./test/hs/hail $TESTDATA_DIR/hail-alloc-drbd.json
26
>>> /"success":true,.*,"result":\["node2","node1"\]/
27
>>>= 0
28

    
29
./test/hs/hail $TESTDATA_DIR/hail-reloc-drbd.json
30
>>> /"success":true,.*,"result":\["node1"\]/
31
>>>= 0
32

    
33
./test/hs/hail $TESTDATA_DIR/hail-node-evac.json
34
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
35
>>>= 0
36

    
37
./test/hs/hail $TESTDATA_DIR/hail-change-group.json
38
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
39
>>>= 0
40

    
41
# check that hail correctly applies the disk policy on a per-disk basis
42
./test/hs/hail $TESTDATA_DIR/hail-alloc-twodisks.json
43
>>> /"success":true,.*,"result":\["node1"\]/
44
>>>= 0
45

    
46
./test/hs/hail $TESTDATA_DIR/hail-alloc-invalid-twodisks.json
47
>>> /"success":false,.*FailDisk: 1/
48
>>>= 0
49

    
50
# check that hail honors network requirements
51
./test/hs/hail $TESTDATA_DIR/hail-alloc-restricted-network.json
52
>>> /"success":true,"info":"Request successful: Selected group: Group 1.*/
53
>>>= 0
54

    
55
# check that hail fails if no nodegroup can meet network and disk template requirements
56
./test/hs/hail $TESTDATA_DIR/hail-alloc-invalid-network.json
57
>>> /"success":false,/
58
>>>= 0
59

    
60
# check that hail succeeds with the same test data, but with the network restrictions removed
61
cat $TESTDATA_DIR/hail-alloc-invalid-network.json | grep -v -e '"network":"uuid-net-1-."' | ./test/hs/hail -
62
>>> /"success":true,"info":"Request successful: Selected group: Group 2.*/
63
>>>= 0
64

    
65
# Run some of the tests above, with exclusive storage enabled
66
./test/hs/hail $T/hail-alloc-drbd.json.excl-stor
67
>>> /"success":true,.*,"result":\["node2","node1"\]/
68
>>>= 0
69

    
70
./test/hs/hail $T/hail-reloc-drbd.json.excl-stor
71
>>> /"success":true,.*,"result":\["node1"\]/
72
>>>= 0
73

    
74
./test/hs/hail $T/hail-node-evac.json.excl-stor
75
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
76
>>>= 0
77

    
78
./test/hs/hail $T/hail-change-group.json.excl-stor
79
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
80
>>>= 0
81

    
82
./test/hs/hail $T/hail-alloc-twodisks.json.excl-stor
83
>>> /"success":true,.*,"result":\["node1"\]/
84
>>>= 0
85

    
86
./test/hs/hail $T/hail-alloc-invalid-twodisks.json.excl-stor
87
>>> /"success":false,.*FailDisk: 1"/
88
>>>= 0
89

    
90
# Same tests with exclusive storage enabled, but no spindles info in instances
91
./test/hs/hail $T/hail-alloc-drbd.json.fail-excl-stor
92
>>> /"success":false,.*FailSpindles: 12"/
93
>>>= 0
94

    
95
./test/hs/hail $T/hail-reloc-drbd.json.fail-excl-stor
96
>>> /"success":false,.*FailSpindles/
97
>>>= 0
98

    
99
./test/hs/hail $T/hail-node-evac.json.fail-excl-stor
100
>>> /"success":true,"info":"Request successful: 1 instances failed to move and 0 were moved successfully",.*FailSpindles/
101
>>>= 0
102

    
103
./test/hs/hail $T/hail-change-group.json.fail-excl-stor
104
>>> /"success":true,"info":"Request successful: 1 instances failed to move and 0 were moved successfully",.*FailSpindles: 2"/
105
>>>= 0
106

    
107
./test/hs/hail $T/hail-alloc-twodisks.json.fail-excl-stor
108
>>> /"success":false,.*FailSpindles: 1"/
109
>>>= 0
110

    
111
# check that hail can use the simu backend
112
./test/hs/hail --simu p,8,8T,16g,16 $TESTDATA_DIR/hail-alloc-drbd.json
113
>>> /"success":true,/
114
>>>= 0
115

    
116
# check that hail can use the text backend
117
./test/hs/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
118
>>> /"success":true,/
119
>>>= 0
120

    
121
# check that hail can use the simu backend
122
./test/hs/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
123
>>> /"success":true,/
124
>>>= 0
125

    
126
# check that hail pre/post saved state differs after allocation
127
./test/hs/hail -v -v -v -p $TESTDATA_DIR/hail-alloc-drbd.json -S $T/hail-alloc >/dev/null 2>&1 && ! diff -q $T/hail-alloc.pre-ialloc $T/hail-alloc.post-ialloc
128
>>> /Files .* and .* differ/
129
>>>= 0
130

    
131
# check that hail pre/post saved state differs after relocation
132
./test/hs/hail -v -v -v -p $TESTDATA_DIR/hail-reloc-drbd.json -S $T/hail-reloc >/dev/null 2>&1 && ! diff -q $T/hail-reloc.pre-ialloc $T/hail-reloc.post-ialloc
133
>>> /Files .* and .* differ/
134
>>>= 0
135

    
136
# evac tests
137
./test/hs/hail $T/hail-node-evac.json.primary-only
138
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
139
>>>= 0
140

    
141
./test/hs/hail $T/hail-node-evac.json.secondary-only
142
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
143
>>>= 0
144

    
145
./test/hs/hail $T/hail-node-evac.json.all
146
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
147
>>>= 0
148

    
149
# Check interaction between policies and spindles
150
./test/hs/hail $TESTDATA_DIR/hail-alloc-spindles.json
151
>>> /"success":true,"info":"Request successful: Selected group: group2,.*FailSpindles: 2,.*"result":\["node4"\]/
152
>>>= 0
153

    
154
./test/hs/hail $T/hail-alloc-spindles.json.excl-stor
155
>>> /"success":true,"info":"Request successful: Selected group: group1,.*FailSpindles: 2",.*"result":\["node1"\]/
156
>>>= 0