Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / cli / crushtool / add-item.t
1   $ crushtool -i "$TESTDIR/simple.template" --add-item 0 1.0 device0 --loc host host0 --loc cluster cluster0 -o one > /dev/null
2   $ crushtool -i one --add-item 1 1.0 device1 --loc host host0 --loc cluster cluster0 -o two > /dev/null
3   $ crushtool -i two --create-simple-rule simple-rule cluster0 host firstn -o two > /dev/null
4   $ crushtool -d two
5   # begin crush map
6   
7   # devices
8   device 0 device0
9   device 1 device1
10   
11   # types
12   type 0 device
13   type 1 host
14   type 2 cluster
15   
16   # buckets
17   host host0 {
18   \tid -2\t\t# do not change unnecessarily (esc)
19   \t# weight 2.000 (esc)
20   \talg straw (esc)
21   \thash 0\t# rjenkins1 (esc)
22   \titem device0 weight 1.000 (esc)
23   \titem device1 weight 1.000 (esc)
24   }
25   cluster cluster0 {
26   \tid -1\t\t# do not change unnecessarily (esc)
27   \t# weight 2.000 (esc)
28   \talg straw (esc)
29   \thash 0\t# rjenkins1 (esc)
30   \titem host0 weight 2.000 (esc)
31   }
32   
33   # rules
34   rule data {
35   \tid 0 (esc)
36   \ttype replicated (esc)
37   \tmin_size 1 (esc)
38   \tmax_size 10 (esc)
39   \tstep take cluster0 (esc)
40   \tstep chooseleaf firstn 0 type host (esc)
41   \tstep emit (esc)
42   }
43   rule metadata {
44   \tid 1 (esc)
45   \ttype replicated (esc)
46   \tmin_size 1 (esc)
47   \tmax_size 10 (esc)
48   \tstep take cluster0 (esc)
49   \tstep chooseleaf firstn 0 type host (esc)
50   \tstep emit (esc)
51   }
52   rule rbd {
53   \tid 2 (esc)
54   \ttype replicated (esc)
55   \tmin_size 1 (esc)
56   \tmax_size 10 (esc)
57   \tstep take cluster0 (esc)
58   \tstep chooseleaf firstn 0 type host (esc)
59   \tstep emit (esc)
60   }
61   rule simple-rule {
62   \tid 3 (esc)
63   \ttype replicated (esc)
64   \tmin_size 1 (esc)
65   \tmax_size 10 (esc)
66   \tstep take cluster0 (esc)
67   \tstep chooseleaf firstn 0 type host (esc)
68   \tstep emit (esc)
69   }
70   
71   # end crush map
72   $ crushtool -i two --remove-rule simple-rule -o two > /dev/null
73   $ crushtool -d two
74   # begin crush map
75   
76   # devices
77   device 0 device0
78   device 1 device1
79   
80   # types
81   type 0 device
82   type 1 host
83   type 2 cluster
84   
85   # buckets
86   host host0 {
87   \tid -2\t\t# do not change unnecessarily (esc)
88   \t# weight 2.000 (esc)
89   \talg straw (esc)
90   \thash 0\t# rjenkins1 (esc)
91   \titem device0 weight 1.000 (esc)
92   \titem device1 weight 1.000 (esc)
93   }
94   cluster cluster0 {
95   \tid -1\t\t# do not change unnecessarily (esc)
96   \t# weight 2.000 (esc)
97   \talg straw (esc)
98   \thash 0\t# rjenkins1 (esc)
99   \titem host0 weight 2.000 (esc)
100   }
101   
102   # rules
103   rule data {
104   \tid 0 (esc)
105   \ttype replicated (esc)
106   \tmin_size 1 (esc)
107   \tmax_size 10 (esc)
108   \tstep take cluster0 (esc)
109   \tstep chooseleaf firstn 0 type host (esc)
110   \tstep emit (esc)
111   }
112   rule metadata {
113   \tid 1 (esc)
114   \ttype replicated (esc)
115   \tmin_size 1 (esc)
116   \tmax_size 10 (esc)
117   \tstep take cluster0 (esc)
118   \tstep chooseleaf firstn 0 type host (esc)
119   \tstep emit (esc)
120   }
121   rule rbd {
122   \tid 2 (esc)
123   \ttype replicated (esc)
124   \tmin_size 1 (esc)
125   \tmax_size 10 (esc)
126   \tstep take cluster0 (esc)
127   \tstep chooseleaf firstn 0 type host (esc)
128   \tstep emit (esc)
129   }
130   
131   # end crush map
132   $ crushtool -d two -o final
133   $ cmp final "$TESTDIR/simple.template.two"
134   $ crushtool -i two --add-item 1 1.0 device1 --loc host host0 --loc cluster cluster0 -o three 2>/dev/null >/dev/null || echo FAIL
135   FAIL
136   $ crushtool -i two --remove-item device1 -o four > /dev/null
137   $ crushtool -d four -o final
138   $ cmp final "$TESTDIR/simple.template.four"
139   $ crushtool -i two --update-item 1 2.0 osd1 --loc host host1 --loc cluster cluster0 -o five > /dev/null
140   $ crushtool -d five -o final
141   $ cmp final "$TESTDIR/simple.template.five"
142   $ crushtool -i five --update-item 1 2.0 osd1 --loc host host1 --loc cluster cluster0 -o six > /dev/null
143   $ crushtool -i five --show-location 1
144   cluster\tcluster0 (esc)
145   host\thost1 (esc)
146   $ crushtool -d six -o final
147   $ cmp final "$TESTDIR/simple.template.five"