Migrate lib/tools/ensure_dirs.py to pathutils
[ganeti-local] / htest / shelltests / htools-hail.test
1 # test that on invalid files it can't parse the request
2 ./htest/hail /dev/null
3 >>>2 /Invalid JSON/
4 >>>= !0
5
6 # another invalid example
7 echo '[]' | ./htest/hail -
8 >>>2 /Unable to read JSObject/
9 >>>= !0
10
11 # empty dict
12 echo '{}' | ./htest/hail -
13 >>>2 /key 'request' not found/
14 >>>= !0
15
16 echo '{"request": 0}' | ./htest/hail -
17 >>>2 /key 'request'/
18 >>>= !0
19
20 ./htest/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 ./htest/hail $TESTDATA_DIR/hail-alloc-drbd.json
26 >>> /"success":true,.*,"result":\["node2","node1"\]/
27 >>>= 0
28
29 ./htest/hail $TESTDATA_DIR/hail-reloc-drbd.json
30 >>> /"success":true,.*,"result":\["node1"\]/
31 >>>= 0
32
33 ./htest/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 ./htest/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 can use the simu backend
42 ./htest/hail --simu p,8,8T,16g,16 $TESTDATA_DIR/hail-alloc-drbd.json
43 >>> /"success":true,/
44 >>>= 0
45
46 # check that hail can use the text backend
47 ./htest/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
48 >>> /"success":true,/
49 >>>= 0
50
51 # check that hail can use the simu backend
52 ./htest/hail -t $T/simu-rebal-merged.standard $TESTDATA_DIR/hail-alloc-drbd.json
53 >>> /"success":true,/
54 >>>= 0
55
56 # check that hail pre/post saved state differs after allocation
57 ./htest/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
58 >>> /Files .* and .* differ/
59 >>>= 0
60
61 # check that hail pre/post saved state differs after relocation
62 ./htest/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
63 >>> /Files .* and .* differ/
64 >>>= 0
65
66 # evac tests
67 ./htest/hail $T/hail-node-evac.json.primary-only
68 >>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
69 >>>= 0
70
71 ./htest/hail $T/hail-node-evac.json.secondary-only
72 >>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
73 >>>= 0
74
75 ./htest/hail $T/hail-node-evac.json.all
76 >>> /"success":true,"info":"Request successful: 0 instances failed to move and 1 were moved successfully"/
77 >>>= 0