Statistics
| Branch: | Tag: | Revision:

root / test / hs / shelltests / htools-hail.test @ 1c912fd2

History | View | Annotate | Download (5.3 kB)

1 53d4cdf1 Iustin Pop
# test that on invalid files it can't parse the request
2 83846468 Iustin Pop
./test/hs/hail /dev/null
3 53d4cdf1 Iustin Pop
>>>2 /Invalid JSON/
4 53d4cdf1 Iustin Pop
>>>= !0
5 53d4cdf1 Iustin Pop
6 53d4cdf1 Iustin Pop
# another invalid example
7 83846468 Iustin Pop
echo '[]' | ./test/hs/hail -
8 53d4cdf1 Iustin Pop
>>>2 /Unable to read JSObject/
9 53d4cdf1 Iustin Pop
>>>= !0
10 53d4cdf1 Iustin Pop
11 53d4cdf1 Iustin Pop
# empty dict
12 83846468 Iustin Pop
echo '{}' | ./test/hs/hail -
13 53d4cdf1 Iustin Pop
>>>2 /key 'request' not found/
14 53d4cdf1 Iustin Pop
>>>= !0
15 53d4cdf1 Iustin Pop
16 83846468 Iustin Pop
echo '{"request": 0}' | ./test/hs/hail -
17 53d4cdf1 Iustin Pop
>>>2 /key 'request'/
18 53d4cdf1 Iustin Pop
>>>= !0
19 53d4cdf1 Iustin Pop
20 83846468 Iustin Pop
./test/hs/hail $TESTDATA_DIR/hail-invalid-reloc.json
21 53d4cdf1 Iustin Pop
>>>2 /key 'name': Unable to read String/
22 53d4cdf1 Iustin Pop
>>>= !0
23 53d4cdf1 Iustin Pop
24 53d4cdf1 Iustin Pop
# and now start the real tests
25 83846468 Iustin Pop
./test/hs/hail $TESTDATA_DIR/hail-alloc-drbd.json
26 53d4cdf1 Iustin Pop
>>> /"success":true,.*,"result":\["node2","node1"\]/
27 53d4cdf1 Iustin Pop
>>>= 0
28 53d4cdf1 Iustin Pop
29 83846468 Iustin Pop
./test/hs/hail $TESTDATA_DIR/hail-reloc-drbd.json
30 53d4cdf1 Iustin Pop
>>> /"success":true,.*,"result":\["node1"\]/
31 53d4cdf1 Iustin Pop
>>>= 0
32 53d4cdf1 Iustin Pop
33 83846468 Iustin Pop
./test/hs/hail $TESTDATA_DIR/hail-node-evac.json
34 53d4cdf1 Iustin Pop
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
35 53d4cdf1 Iustin Pop
>>>= 0
36 53d4cdf1 Iustin Pop
37 83846468 Iustin Pop
./test/hs/hail $TESTDATA_DIR/hail-change-group.json
38 53d4cdf1 Iustin Pop
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
39 53d4cdf1 Iustin Pop
>>>= 0
40 53d4cdf1 Iustin Pop
41 e0d15aae Klaus Aehlig
# check that hail correctly applies the disk policy on a per-disk basis
42 e0d15aae Klaus Aehlig
./test/hs/hail $TESTDATA_DIR/hail-alloc-twodisks.json
43 e0d15aae Klaus Aehlig
>>> /"success":true,.*,"result":\["node1"\]/
44 e0d15aae Klaus Aehlig
>>>= 0
45 e0d15aae Klaus Aehlig
46 e0d15aae Klaus Aehlig
./test/hs/hail $TESTDATA_DIR/hail-alloc-invalid-twodisks.json
47 e0d15aae Klaus Aehlig
>>> /"success":false,.*FailDisk: 1/
48 e0d15aae Klaus Aehlig
>>>= 0
49 e0d15aae Klaus Aehlig
50 017160ed Thomas Thrainer
# check that hail honors network requirements
51 017160ed Thomas Thrainer
./test/hs/hail $TESTDATA_DIR/hail-alloc-restricted-network.json
52 017160ed Thomas Thrainer
>>> /"success":true,"info":"Request successful: Selected group: Group 1.*/
53 017160ed Thomas Thrainer
>>>= 0
54 017160ed Thomas Thrainer
55 017160ed Thomas Thrainer
# check that hail fails if no nodegroup can meet network and disk template requirements
56 017160ed Thomas Thrainer
./test/hs/hail $TESTDATA_DIR/hail-alloc-invalid-network.json
57 017160ed Thomas Thrainer
>>> /"success":false,/
58 017160ed Thomas Thrainer
>>>= 0
59 017160ed Thomas Thrainer
60 017160ed Thomas Thrainer
# check that hail succeeds with the same test data, but with the network restrictions removed
61 017160ed Thomas Thrainer
cat $TESTDATA_DIR/hail-alloc-invalid-network.json | grep -v -e '"network":"uuid-net-1-."' | ./test/hs/hail -
62 017160ed Thomas Thrainer
>>> /"success":true,"info":"Request successful: Selected group: Group 2.*/
63 017160ed Thomas Thrainer
>>>= 0
64 017160ed Thomas Thrainer
65 d7976f54 Bernardo Dal Seno
# Run some of the tests above, with exclusive storage enabled
66 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-drbd.json.excl-stor
67 d7976f54 Bernardo Dal Seno
>>> /"success":true,.*,"result":\["node2","node1"\]/
68 d7976f54 Bernardo Dal Seno
>>>= 0
69 d7976f54 Bernardo Dal Seno
70 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-reloc-drbd.json.excl-stor
71 d7976f54 Bernardo Dal Seno
>>> /"success":true,.*,"result":\["node1"\]/
72 d7976f54 Bernardo Dal Seno
>>>= 0
73 d7976f54 Bernardo Dal Seno
74 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-node-evac.json.excl-stor
75 d7976f54 Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
76 d7976f54 Bernardo Dal Seno
>>>= 0
77 d7976f54 Bernardo Dal Seno
78 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-change-group.json.excl-stor
79 d7976f54 Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
80 d7976f54 Bernardo Dal Seno
>>>= 0
81 d7976f54 Bernardo Dal Seno
82 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-twodisks.json.excl-stor
83 d7976f54 Bernardo Dal Seno
>>> /"success":true,.*,"result":\["node1"\]/
84 d7976f54 Bernardo Dal Seno
>>>= 0
85 d7976f54 Bernardo Dal Seno
86 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-invalid-twodisks.json.excl-stor
87 d7976f54 Bernardo Dal Seno
>>> /"success":false,.*FailDisk: 1"/
88 d7976f54 Bernardo Dal Seno
>>>= 0
89 d7976f54 Bernardo Dal Seno
90 d7976f54 Bernardo Dal Seno
# Same tests with exclusive storage enabled, but no spindles info in instances
91 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-drbd.json.fail-excl-stor
92 d7976f54 Bernardo Dal Seno
>>> /"success":false,.*FailSpindles: 12"/
93 d7976f54 Bernardo Dal Seno
>>>= 0
94 d7976f54 Bernardo Dal Seno
95 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-reloc-drbd.json.fail-excl-stor
96 74ff6aed Bernardo Dal Seno
>>> /"success":false,.*FailSpindles/
97 d7976f54 Bernardo Dal Seno
>>>= 0
98 d7976f54 Bernardo Dal Seno
99 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-node-evac.json.fail-excl-stor
100 74ff6aed Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: 1 instances failed to move and 0 were moved successfully",.*FailSpindles/
101 d7976f54 Bernardo Dal Seno
>>>= 0
102 d7976f54 Bernardo Dal Seno
103 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-change-group.json.fail-excl-stor
104 d7976f54 Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: 1 instances failed to move and 0 were moved successfully",.*FailSpindles: 2"/
105 d7976f54 Bernardo Dal Seno
>>>= 0
106 d7976f54 Bernardo Dal Seno
107 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-twodisks.json.fail-excl-stor
108 d7976f54 Bernardo Dal Seno
>>> /"success":false,.*FailSpindles: 1"/
109 d7976f54 Bernardo Dal Seno
>>>= 0
110 d7976f54 Bernardo Dal Seno
111 53d4cdf1 Iustin Pop
# check that hail can use the simu backend
112 83846468 Iustin Pop
./test/hs/hail --simu p,8,8T,16g,16 $TESTDATA_DIR/hail-alloc-drbd.json
113 53d4cdf1 Iustin Pop
>>> /"success":true,/
114 53d4cdf1 Iustin Pop
>>>= 0
115 53d4cdf1 Iustin Pop
116 53d4cdf1 Iustin Pop
# check that hail can use the text backend
117 83846468 Iustin Pop
./test/hs/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
118 53d4cdf1 Iustin Pop
>>> /"success":true,/
119 53d4cdf1 Iustin Pop
>>>= 0
120 53d4cdf1 Iustin Pop
121 53d4cdf1 Iustin Pop
# check that hail can use the simu backend
122 83846468 Iustin Pop
./test/hs/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
123 53d4cdf1 Iustin Pop
>>> /"success":true,/
124 53d4cdf1 Iustin Pop
>>>= 0
125 53d4cdf1 Iustin Pop
126 53d4cdf1 Iustin Pop
# check that hail pre/post saved state differs after allocation
127 83846468 Iustin Pop
./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 53d4cdf1 Iustin Pop
>>> /Files .* and .* differ/
129 53d4cdf1 Iustin Pop
>>>= 0
130 53d4cdf1 Iustin Pop
131 53d4cdf1 Iustin Pop
# check that hail pre/post saved state differs after relocation
132 83846468 Iustin Pop
./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 53d4cdf1 Iustin Pop
>>> /Files .* and .* differ/
134 53d4cdf1 Iustin Pop
>>>= 0
135 53d4cdf1 Iustin Pop
136 53d4cdf1 Iustin Pop
# evac tests
137 83846468 Iustin Pop
./test/hs/hail $T/hail-node-evac.json.primary-only
138 53d4cdf1 Iustin Pop
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
139 53d4cdf1 Iustin Pop
>>>= 0
140 53d4cdf1 Iustin Pop
141 83846468 Iustin Pop
./test/hs/hail $T/hail-node-evac.json.secondary-only
142 53d4cdf1 Iustin Pop
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
143 53d4cdf1 Iustin Pop
>>>= 0
144 53d4cdf1 Iustin Pop
145 83846468 Iustin Pop
./test/hs/hail $T/hail-node-evac.json.all
146 53d4cdf1 Iustin Pop
>>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
147 53d4cdf1 Iustin Pop
>>>= 0
148 d7976f54 Bernardo Dal Seno
149 d7976f54 Bernardo Dal Seno
# Check interaction between policies and spindles
150 d7976f54 Bernardo Dal Seno
./test/hs/hail $TESTDATA_DIR/hail-alloc-spindles.json
151 d7976f54 Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: Selected group: group2,.*FailSpindles: 2,.*"result":\["node4"\]/
152 d7976f54 Bernardo Dal Seno
>>>= 0
153 d7976f54 Bernardo Dal Seno
154 d7976f54 Bernardo Dal Seno
./test/hs/hail $T/hail-alloc-spindles.json.excl-stor
155 74ff6aed Bernardo Dal Seno
>>> /"success":true,"info":"Request successful: Selected group: group1,.*FailSpindles: 2",.*"result":\["node1"\]/
156 d7976f54 Bernardo Dal Seno
>>>= 0