5 function expect_false
()
8 if "$@"; then return 1; else return 0; fi
14 ceph osd crush rule dump
15 ceph osd crush rule
ls
16 ceph osd crush rule list
18 ceph osd crush rule create-simple foo default
host
19 ceph osd crush rule create-simple foo default
host
20 ceph osd crush rule create-simple bar default
host
22 # make sure we're at luminous+ before using crush device classes
23 ceph osd require-osd-release luminous
24 ceph osd crush rm-device-class all
25 ceph osd crush set-device-class ssd osd
.0
26 ceph osd crush set-device-class hdd osd
.1
27 ceph osd crush rule create-replicated foo-ssd default
host ssd
28 ceph osd crush rule create-replicated foo-hdd default
host hdd
30 ceph osd erasure-code-profile
set ec-foo-ssd crush-device-class
=ssd m
=2 k
=2
31 ceph osd pool create ec-foo
2 erasure ec-foo-ssd
32 ceph osd pool
rm ec-foo ec-foo
--yes-i-really-really-mean-it
34 ceph osd crush rule
ls |
grep foo
36 ceph osd crush rule
rm foo
37 ceph osd crush rule
rm foo
# idempotent
38 ceph osd crush rule
rm bar
40 # can't delete in-use rules, tho:
41 ceph osd pool create pinning_pool
1
42 expect_false ceph osd crush rule
rm replicated_rule
43 ceph osd pool
rm pinning_pool pinning_pool
--yes-i-really-really-mean-it
46 expect_false ceph osd crush add-bucket foo osd
47 ceph osd crush add-bucket foo root
50 ceph osd crush add
$o1 1 host=host1 root
=foo
51 ceph osd crush add
$o1 1 host=host1 root
=foo
# idemptoent
52 ceph osd crush add
$o2 1 host=host2 root
=foo
53 ceph osd crush add
$o2 1 host=host2 root
=foo
# idempotent
54 ceph osd crush add-bucket bar root
55 ceph osd crush add-bucket bar root
# idempotent
56 ceph osd crush link host1 root
=bar
57 ceph osd crush link host1 root
=bar
# idempotent
58 ceph osd crush link host2 root
=bar
59 ceph osd crush link host2 root
=bar
# idempotent
61 ceph osd tree |
grep -c osd.
$o1 |
grep -q 2
62 ceph osd tree |
grep -c host1 |
grep -q 2
63 ceph osd tree |
grep -c osd.
$o2 |
grep -q 2
64 ceph osd tree |
grep -c host2 |
grep -q 2
65 expect_false ceph osd crush
rm host1 foo
# not empty
66 ceph osd crush unlink host1 foo
67 ceph osd crush unlink host1 foo
68 ceph osd tree |
grep -c host1 |
grep -q 1
70 expect_false ceph osd crush
rm foo
# not empty
71 expect_false ceph osd crush
rm bar
# not empty
72 ceph osd crush unlink host1 bar
73 ceph osd tree |
grep -c host1 |
grep -q 1 # now an orphan
74 ceph osd crush
rm osd.
$o1 host1
75 ceph osd crush
rm host1
76 ceph osd tree |
grep -c host1 |
grep -q 0
78 expect_false ceph osd crush
rm bar
# not empty
79 ceph osd crush unlink host2
81 # reference foo and bar with a rule
82 ceph osd crush rule create-simple foo-rule foo
host firstn
83 expect_false ceph osd crush
rm foo
84 ceph osd crush rule
rm foo-rule
88 ceph osd crush
rm osd.
$o2 host2
89 ceph osd crush
rm host2
91 ceph osd crush add-bucket foo
host
92 ceph osd crush move foo root
=default rack
=localrack
94 ceph osd crush create-or-move osd.
$o1 1.0 root
=default
95 ceph osd crush move osd.
$o1 host=foo
96 ceph osd
find osd.
$o1 |
grep host |
grep foo
98 ceph osd crush
rm osd.
$o1
99 ceph osd crush
rm osd.
$o2
101 ceph osd crush
rm foo
105 ceph osd crush add
$o3 123 root
=default
106 ceph osd tree |
grep osd.
$o3 |
grep 123
107 ceph osd crush reweight osd.
$o3 113
108 expect_false ceph osd crush reweight osd.
$o3 123456
109 ceph osd tree |
grep osd.
$o3 |
grep 113
110 ceph osd crush
rm osd.
$o3
113 # test reweight-subtree
116 ceph osd crush add
$o4 123 root
=default
host=foobaz
117 ceph osd crush add
$o5 123 root
=default
host=foobaz
118 ceph osd tree |
grep osd.
$o4 |
grep 123
119 ceph osd tree |
grep osd.
$o5 |
grep 123
120 ceph osd crush reweight-subtree foobaz
155
121 expect_false ceph osd crush reweight-subtree foobaz
123456
122 ceph osd tree |
grep osd.
$o4 |
grep 155
123 ceph osd tree |
grep osd.
$o5 |
grep 155
124 ceph osd crush
rm osd.
$o4
125 ceph osd crush
rm osd.
$o5
130 # make sure we require luminous before testing weight-sets
131 ceph osd set-require-min-compat-client luminous
132 ceph osd crush weight-set dump
133 ceph osd crush weight-set
ls
134 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9
135 ceph osd pool create fooset
8
136 ceph osd pool create barset
8
137 ceph osd pool
set barset size
3
138 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9
139 ceph osd crush weight-set create fooset flat
140 ceph osd crush weight-set create barset positional
141 ceph osd crush weight-set
ls |
grep fooset
142 ceph osd crush weight-set
ls |
grep barset
143 ceph osd crush weight-set dump
144 ceph osd crush weight-set reweight fooset osd
.0 .9
145 expect_false ceph osd crush weight-set reweight fooset osd
.0 .9 .9
146 expect_false ceph osd crush weight-set reweight barset osd
.0 .9
147 ceph osd crush weight-set reweight barset osd
.0 .9 .9 .9
148 ceph osd crush weight-set
ls |
grep -c fooset |
grep -q 1
149 ceph osd crush weight-set
rm fooset
150 ceph osd crush weight-set
ls |
grep -c fooset |
grep -q 0
151 ceph osd crush weight-set
ls |
grep barset
152 ceph osd crush weight-set
rm barset
153 ceph osd crush weight-set
ls |
grep -c barset |
grep -q 0
154 ceph osd crush weight-set create-compat
155 ceph osd crush weight-set
ls |
grep '(compat)'
156 ceph osd crush weight-set rm-compat