]> git.proxmox.com Git - ceph.git/blobdiff - ceph/qa/workunits/mon/crush_ops.sh
update sources to v12.1.3
[ceph.git] / ceph / qa / workunits / mon / crush_ops.sh
index 80c58ca752264395de8ab53c2ffa5e6e3b99b8e4..a9f1512c5cc3a0e31a7c331f408ea4375ab8bb4f 100755 (executable)
@@ -19,6 +19,18 @@ ceph osd crush rule create-simple foo default host
 ceph osd crush rule create-simple foo default host
 ceph osd crush rule create-simple bar default host
 
+# make sure we're at luminous+ before using crush device classes
+ceph osd require-osd-release luminous
+ceph osd crush rm-device-class all
+ceph osd crush set-device-class ssd osd.0
+ceph osd crush set-device-class hdd osd.1
+ceph osd crush rule create-replicated foo-ssd default host ssd
+ceph osd crush rule create-replicated foo-hdd default host hdd
+
+ceph osd erasure-code-profile set ec-foo-ssd crush-device-class=ssd m=2 k=2
+ceph osd pool create ec-foo 2 erasure ec-foo-ssd
+ceph osd pool rm ec-foo ec-foo --yes-i-really-really-mean-it
+
 ceph osd crush rule ls | grep foo
 
 ceph osd crush rule rm foo
@@ -26,7 +38,9 @@ ceph osd crush rule rm foo  # idempotent
 ceph osd crush rule rm bar
 
 # can't delete in-use rules, tho:
-expect_false ceph osd crush rule rm replicated_ruleset
+ceph osd pool create pinning_pool 1
+expect_false ceph osd crush rule rm replicated_rule
+ceph osd pool rm pinning_pool pinning_pool --yes-i-really-really-mean-it
 
 # build a simple map
 expect_false ceph osd crush add-bucket foo osd
@@ -91,6 +105,7 @@ o3=`ceph osd create`
 ceph osd crush add $o3 123 root=default
 ceph osd tree | grep osd.$o3 | grep 123
 ceph osd crush reweight osd.$o3 113
+expect_false ceph osd crush reweight osd.$o3 123456
 ceph osd tree | grep osd.$o3 | grep 113
 ceph osd crush rm osd.$o3
 ceph osd rm osd.$o3
@@ -103,6 +118,7 @@ ceph osd crush add $o5 123 root=default host=foobaz
 ceph osd tree | grep osd.$o4 | grep 123
 ceph osd tree | grep osd.$o5 | grep 123
 ceph osd crush reweight-subtree foobaz 155
+expect_false ceph osd crush reweight-subtree foobaz 123456
 ceph osd tree | grep osd.$o4 | grep 155
 ceph osd tree | grep osd.$o5 | grep 155
 ceph osd crush rm osd.$o4
@@ -110,4 +126,33 @@ ceph osd crush rm osd.$o5
 ceph osd rm osd.$o4
 ceph osd rm osd.$o5
 
+# weight sets
+# make sure we require luminous before testing weight-sets
+ceph osd set-require-min-compat-client luminous
+ceph osd crush weight-set dump
+ceph osd crush weight-set ls
+expect_false ceph osd crush weight-set reweight fooset osd.0 .9
+ceph osd pool create fooset 8
+ceph osd pool create barset 8
+ceph osd pool set barset size 3
+expect_false ceph osd crush weight-set reweight fooset osd.0 .9
+ceph osd crush weight-set create fooset flat
+ceph osd crush weight-set create barset positional
+ceph osd crush weight-set ls | grep fooset
+ceph osd crush weight-set ls | grep barset
+ceph osd crush weight-set dump
+ceph osd crush weight-set reweight fooset osd.0 .9
+expect_false ceph osd crush weight-set reweight fooset osd.0 .9 .9
+expect_false ceph osd crush weight-set reweight barset osd.0 .9
+ceph osd crush weight-set reweight barset osd.0 .9 .9 .9
+ceph osd crush weight-set ls | grep -c fooset | grep -q 1
+ceph osd crush weight-set rm fooset
+ceph osd crush weight-set ls | grep -c fooset | grep -q 0
+ceph osd crush weight-set ls | grep barset
+ceph osd crush weight-set rm barset
+ceph osd crush weight-set ls | grep -c barset | grep -q 0
+ceph osd crush weight-set create-compat
+ceph osd crush weight-set ls | grep '(compat)'
+ceph osd crush weight-set rm-compat
+
 echo OK