]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crushtool: add --reweight-item cli tests
authorSage Weil <sage@newdream.net>
Thu, 23 Feb 2012 19:42:08 +0000 (11:42 -0800)
committerSage Weil <sage@newdream.net>
Thu, 23 Feb 2012 19:53:48 +0000 (11:53 -0800)
Test list, tree, and straw buckets.

Signed-off-by: Sage Weil <sage@newdream.net>
src/test/cli/crushtool/multitype.after [new file with mode: 0644]
src/test/cli/crushtool/multitype.before [new file with mode: 0644]
src/test/cli/crushtool/reweight.t [new file with mode: 0644]

diff --git a/src/test/cli/crushtool/multitype.after b/src/test/cli/crushtool/multitype.after
new file mode 100644 (file)
index 0000000..9c7da0a
--- /dev/null
@@ -0,0 +1,87 @@
+# begin crush map
+
+# devices
+device 0 osd0
+device 1 osd1
+device 2 osd2
+device 3 osd3
+device 4 osd4
+device 5 osd5
+device 6 osd6
+device 7 osd7
+device 8 osd8
+device 9 osd9
+
+# types
+type 0 osd
+type 1 host
+type 2 cluster
+
+# buckets
+host host0 {
+       id -2           # do not change unnecessarily
+       # weight 3.000
+       alg straw
+       hash 0  # rjenkins1
+       item osd0 weight 2.000
+       item osd1 weight 1.000
+}
+host host1 {
+       id -3           # do not change unnecessarily
+       # weight 3.000
+       alg list        # add new items at the end; do not change order unnecessarily
+       hash 0  # rjenkins1
+       item osd3 weight 2.000
+       item osd4 weight 1.000
+}
+host host2 {
+       id -4           # do not change unnecessarily
+       # weight 5.500
+       alg tree        # do not change pos for existing items unnecessarily
+       hash 0  # rjenkins1
+       item osd5 weight 1.000 pos 0
+       item osd6 weight 2.000 pos 1
+       item osd7 weight 0.500 pos 2
+       item osd8 weight 1.000 pos 3
+       item osd9 weight 1.000 pos 4
+}
+cluster cluster0 {
+       id -1           # do not change unnecessarily
+       # weight 11.500
+       alg straw
+       hash 0  # rjenkins1
+       item host0 weight 3.000
+       item host1 weight 3.000
+       item host2 weight 5.500
+}
+
+# rules
+rule data {
+       ruleset 0
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+rule metadata {
+       ruleset 1
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+rule rbd {
+       ruleset 2
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+
+# end crush map
diff --git a/src/test/cli/crushtool/multitype.before b/src/test/cli/crushtool/multitype.before
new file mode 100644 (file)
index 0000000..8adcda9
--- /dev/null
@@ -0,0 +1,87 @@
+# begin crush map
+
+# devices
+device 0 osd0
+device 1 osd1
+device 2 osd2
+device 3 osd3
+device 4 osd4
+device 5 osd5
+device 6 osd6
+device 7 osd7
+device 8 osd8
+device 9 osd9
+
+# types
+type 0 osd
+type 1 host
+type 2 cluster
+
+# buckets
+host host0 {
+       id -2           # do not change unnecessarily
+       # weight 2.000
+       alg straw
+       hash 0  # rjenkins1
+       item osd0 weight 1.000
+       item osd1 weight 1.000
+}
+host host1 {
+       id -3           # do not change unnecessarily
+       # weight 2.000
+       alg list
+       hash 0  # rjenkins1
+       item osd3 weight 1.000
+       item osd4 weight 1.000
+}
+host host2 {
+       id -4           # do not change unnecessarily
+       # weight 2.000
+       alg tree
+       hash 0  # rjenkins1
+       item osd5 weight 1.000
+       item osd6 weight 1.000
+       item osd7 weight 1.000
+       item osd8 weight 1.000
+       item osd9 weight 1.000
+}
+cluster cluster0 {
+       id -1           # do not change unnecessarily
+       # weight 2.000
+       alg straw
+       hash 0  # rjenkins1
+       item host0 weight 2.000
+       item host1 weight 2.000
+       item host2 weight 5.000
+}
+
+# rules
+rule data {
+       ruleset 0
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+rule metadata {
+       ruleset 1
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+rule rbd {
+       ruleset 2
+       type replicated
+       min_size 1
+       max_size 10
+       step take cluster0
+       step chooseleaf firstn 0 type host
+       step emit
+}
+
+# end crush map
diff --git a/src/test/cli/crushtool/reweight.t b/src/test/cli/crushtool/reweight.t
new file mode 100644 (file)
index 0000000..f4da5c9
--- /dev/null
@@ -0,0 +1,8 @@
+  $ crushtool -c "$TESTDIR/multitype.before" -o mt > /dev/null
+  $ crushtool -i mt --reweight-item osd0 2.0 -o mt > /dev/null
+  $ crushtool -i mt --reweight-item osd3 2.0 -o mt > /dev/null
+  $ crushtool -i mt --reweight-item osd6 2.0 -o mt > /dev/null
+  $ crushtool -i mt --reweight-item osd7 .5 -o mt > /dev/null
+  $ crushtool -d mt -o final
+  $ diff final "$TESTDIR/multitype.after"
+  $ rm mt final