root / test / hs / shelltests / htools-hail.test @ 14933c17
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 |