]> git.proxmox.com Git - ceph.git/blame - ceph/qa/workunits/mon/crush_ops.sh
update sources to v12.1.1
[ceph.git] / ceph / qa / workunits / mon / crush_ops.sh
CommitLineData
7c673cae
FG
1#!/bin/bash -x
2
3set -e
4
5function expect_false()
6{
7 set -x
8 if "$@"; then return 1; else return 0; fi
9}
10
11ceph osd crush dump
12
13# rules
14ceph osd crush rule dump
15ceph osd crush rule ls
16ceph osd crush rule list
17
18ceph osd crush rule create-simple foo default host
19ceph osd crush rule create-simple foo default host
20ceph osd crush rule create-simple bar default host
21
224ce89b
WB
22# make sure we're at luminous+ before using crush device classes
23ceph osd require-osd-release luminous
24ceph osd crush class create ssd
25ceph osd crush class create hdd
26ceph osd crush set-device-class ssd osd.0
27ceph osd crush set-device-class hdd osd.1
28ceph osd crush rule create-replicated foo-ssd default host ssd
29ceph osd crush rule create-replicated foo-hdd default host hdd
30
31ceph osd erasure-code-profile set ec-foo-ssd crush-device-class=ssd m=2 k=2
32ceph osd pool create ec-foo 2 erasure ec-foo-ssd
33ceph osd pool rm ec-foo ec-foo --yes-i-really-really-mean-it
34
7c673cae
FG
35ceph osd crush rule ls | grep foo
36
37ceph osd crush rule rm foo
38ceph osd crush rule rm foo # idempotent
39ceph osd crush rule rm bar
40
41# can't delete in-use rules, tho:
31f18b77 42expect_false ceph osd crush rule rm replicated_rule
7c673cae
FG
43
44# build a simple map
45expect_false ceph osd crush add-bucket foo osd
46ceph osd crush add-bucket foo root
47o1=`ceph osd create`
48o2=`ceph osd create`
49ceph osd crush add $o1 1 host=host1 root=foo
50ceph osd crush add $o1 1 host=host1 root=foo # idemptoent
51ceph osd crush add $o2 1 host=host2 root=foo
52ceph osd crush add $o2 1 host=host2 root=foo # idempotent
53ceph osd crush add-bucket bar root
54ceph osd crush add-bucket bar root # idempotent
55ceph osd crush link host1 root=bar
56ceph osd crush link host1 root=bar # idempotent
57ceph osd crush link host2 root=bar
58ceph osd crush link host2 root=bar # idempotent
59
60ceph osd tree | grep -c osd.$o1 | grep -q 2
61ceph osd tree | grep -c host1 | grep -q 2
62ceph osd tree | grep -c osd.$o2 | grep -q 2
63ceph osd tree | grep -c host2 | grep -q 2
64expect_false ceph osd crush rm host1 foo # not empty
65ceph osd crush unlink host1 foo
66ceph osd crush unlink host1 foo
67ceph osd tree | grep -c host1 | grep -q 1
68
69expect_false ceph osd crush rm foo # not empty
70expect_false ceph osd crush rm bar # not empty
71ceph osd crush unlink host1 bar
72ceph osd tree | grep -c host1 | grep -q 1 # now an orphan
73ceph osd crush rm osd.$o1 host1
74ceph osd crush rm host1
75ceph osd tree | grep -c host1 | grep -q 0
76
77expect_false ceph osd crush rm bar # not empty
78ceph osd crush unlink host2
79
80# reference foo and bar with a rule
81ceph osd crush rule create-simple foo-rule foo host firstn
82expect_false ceph osd crush rm foo
83ceph osd crush rule rm foo-rule
84
85ceph osd crush rm bar
86ceph osd crush rm foo
87ceph osd crush rm osd.$o2 host2
88ceph osd crush rm host2
89
90ceph osd crush add-bucket foo host
91ceph osd crush move foo root=default rack=localrack
92
93ceph osd crush create-or-move osd.$o1 1.0 root=default
94ceph osd crush move osd.$o1 host=foo
95ceph osd find osd.$o1 | grep host | grep foo
96
97ceph osd crush rm osd.$o1
98ceph osd crush rm osd.$o2
99
100ceph osd crush rm foo
101
102# test reweight
103o3=`ceph osd create`
104ceph osd crush add $o3 123 root=default
105ceph osd tree | grep osd.$o3 | grep 123
106ceph osd crush reweight osd.$o3 113
224ce89b 107expect_false ceph osd crush reweight osd.$o3 123456
7c673cae
FG
108ceph osd tree | grep osd.$o3 | grep 113
109ceph osd crush rm osd.$o3
110ceph osd rm osd.$o3
111
112# test reweight-subtree
113o4=`ceph osd create`
114o5=`ceph osd create`
115ceph osd crush add $o4 123 root=default host=foobaz
116ceph osd crush add $o5 123 root=default host=foobaz
117ceph osd tree | grep osd.$o4 | grep 123
118ceph osd tree | grep osd.$o5 | grep 123
119ceph osd crush reweight-subtree foobaz 155
224ce89b 120expect_false ceph osd crush reweight-subtree foobaz 123456
7c673cae
FG
121ceph osd tree | grep osd.$o4 | grep 155
122ceph osd tree | grep osd.$o5 | grep 155
123ceph osd crush rm osd.$o4
124ceph osd crush rm osd.$o5
125ceph osd rm osd.$o4
126ceph osd rm osd.$o5
127
128echo OK