summaryrefslogtreecommitdiffstats
path: root/src/test/cli/crushtool/build.t
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/cli/crushtool/build.t')
-rw-r--r--src/test/cli/crushtool/build.t77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/test/cli/crushtool/build.t b/src/test/cli/crushtool/build.t
new file mode 100644
index 000000000..4061d8fb4
--- /dev/null
+++ b/src/test/cli/crushtool/build.t
@@ -0,0 +1,77 @@
+ $ map="$TESTDIR/build.crushmap"
+
+#
+# display the crush tree by default
+#
+ $ crushtool --outfn "$map" --build --num_osds 5 node straw 2 rack straw 1 root straw 0
+
+#
+# silence all messages with --debug-crush 0
+#
+ $ CEPH_ARGS="--debug-crush 0" crushtool --outfn "$map" --build --num_osds 5 node straw 2 rack straw 1 root straw 0
+
+#
+# display a warning if there is more than one root
+#
+ $ crushtool --outfn "$map" --build --num_osds 5 node straw 2 rack straw 1
+ The crush rulesets will use the root rack0 (re)
+ and ignore the others.
+ There are 3 roots, they can be
+ grouped into a single root by appending something like:
+ root straw 0
+
+#
+# crush rulesets are generated using the OSDMap helpers
+#
+ $ CEPH_ARGS="--debug-crush 0" crushtool --outfn "$map" --set-straw-calc-version 0 --build --num_osds 1 root straw 0 --set-chooseleaf-stable 0
+ $ crushtool -o "$map.txt" -d "$map"
+ $ cat "$map.txt"
+ # begin crush map
+ tunable choose_local_tries 0
+ tunable choose_local_fallback_tries 0
+ tunable choose_total_tries 50
+ tunable chooseleaf_descend_once 1
+ tunable chooseleaf_vary_r 1
+ tunable allowed_bucket_algs 54
+
+ # devices
+ device 0 osd.0
+
+ # types
+ type 0 osd
+ type 1 root
+
+ # buckets
+ root root {
+ \tid -1\t\t# do not change unnecessarily (esc)
+ \t# weight 1.000 (esc)
+ \talg straw (esc)
+ \thash 0\t# rjenkins1 (esc)
+ \titem osd.0 weight 1.000 (esc)
+ }
+
+ # rules
+ rule replicated_rule {
+ \tid 0 (esc)
+ \ttype replicated (esc)
+ \tmin_size 1 (esc)
+ \tmax_size 10 (esc)
+ \tstep take root (esc)
+ \tstep chooseleaf firstn 0 type root (esc)
+ \tstep emit (esc)
+ }
+
+ # end crush map
+ $ rm "$map" "$map.txt"
+
+#
+# Wrong number of arguments
+#
+ $ crushtool --outfn "$map" --debug-crush 0 --build --num_osds 5 node straw 0
+ remaining args: [--debug-crush,0,node,straw,0]
+ layers must be specified with 3-tuples of (name, buckettype, size)
+ [1]
+
+# Local Variables:
+# compile-command: "cd ../../.. ; make crushtool && test/run-cli-tests"
+# End: