]> git.proxmox.com Git - ceph.git/blame - ceph/src/test/cli-integration/rbd/formatted-output.t
import 15.2.0 Octopus source
[ceph.git] / ceph / src / test / cli-integration / rbd / formatted-output.t
CommitLineData
7c673cae
FG
1ls on empty pool never containing images
2========================================
9f95a23c 3 $ ceph osd pool create rbd_other
7c673cae 4 pool 'rbd_other' created
d2e6a577 5 $ rbd pool init rbd_other
7c673cae
FG
6 $ rados -p rbd rm rbd_directory >/dev/null 2>&1 || true
7 $ rbd ls
8 $ rbd ls --format json
181888fb 9 []
7c673cae 10 $ rbd ls --format xml
181888fb 11 <images></images>
7c673cae
FG
12
13create
14=======
11fdf7f2 15 $ RBD_FORCE_ALLOW_V1=1 rbd create -s 1024 --image-format 1 foo --log-to-stderr=false
7c673cae
FG
16 rbd: image format 1 is deprecated
17 $ rbd create -s 512 --image-format 2 bar
18 $ rbd create -s 2048 --image-format 2 --image-feature layering baz
11fdf7f2 19 $ RBD_FORCE_ALLOW_V1=1 rbd create -s 1 --image-format 1 quux --log-to-stderr=false
7c673cae
FG
20 rbd: image format 1 is deprecated
21 $ rbd create -s 1G --image-format 2 quuy
22
23snapshot
24========
25 $ rbd snap create bar@snap
26 $ rbd resize -s 1024 --no-progress bar
27 $ rbd resize -s 2G --no-progress quuy
28 $ rbd snap create bar@snap2
29 $ rbd snap create foo@snap
30
31clone
32=====
33 $ rbd snap protect bar@snap
34 $ rbd clone --image-feature layering,exclusive-lock,object-map,fast-diff bar@snap rbd_other/child
35 $ rbd snap create rbd_other/child@snap
36 $ rbd flatten rbd_other/child 2> /dev/null
37 $ rbd bench rbd_other/child --io-type write --io-pattern seq --io-total 1B > /dev/null 2>&1
38 $ rbd clone bar@snap rbd_other/deep-flatten-child
39 $ rbd snap create rbd_other/deep-flatten-child@snap
40 $ rbd flatten rbd_other/deep-flatten-child 2> /dev/null
41
42lock
43====
44 $ rbd lock add quux id
45 $ rbd lock add baz id1 --shared tag
46 $ rbd lock add baz id2 --shared tag
47 $ rbd lock add baz id3 --shared tag
48
49test formatting
50===============
51 $ rbd children foo@snap
52 $ rbd children bar@snap
53 rbd_other/child
54 $ rbd children bar@snap2
55TODO: figure out why .* does not match the block_name_prefix line in rbd info.
56For now, use a more inclusive regex.
57 $ rbd info foo
58 rbd image 'foo':
11fdf7f2
TL
59 \tsize 1 GiB in 256 objects (esc)
60 \torder 22 (4 MiB objects) (esc)
61 \tsnapshot_count: 1 (esc)
7c673cae
FG
62 [^^]+ (re)
63 \tformat: 1 (esc)
9f95a23c 64 $ rbd info foo --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
65 {
66 "block_name_prefix": "rb.0.*", (glob)
67 "format": 1,
11fdf7f2 68 "id": "",
7c673cae
FG
69 "name": "foo",
70 "object_size": 4194304,
71 "objects": 256,
72 "order": 22,
11fdf7f2
TL
73 "size": 1073741824,
74 "snapshot_count": 1
7c673cae 75 }
9f95a23c 76 $ rbd info foo --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
77 <image>
78 <name>foo</name>
9f95a23c 79 <id/>
7c673cae
FG
80 <size>1073741824</size>
81 <objects>256</objects>
82 <order>22</order>
83 <object_size>4194304</object_size>
11fdf7f2 84 <snapshot_count>1</snapshot_count>
7c673cae
FG
85 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
86 <format>1</format>
87 </image>
88 $ rbd info foo@snap
89 rbd image 'foo':
11fdf7f2
TL
90 \tsize 1 GiB in 256 objects (esc)
91 \torder 22 (4 MiB objects) (esc)
92 \tsnapshot_count: 1 (esc)
7c673cae
FG
93 [^^]+ (re)
94 \tformat: 1 (esc)
95 \tprotected: False (esc)
9f95a23c 96 $ rbd info foo@snap --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
97 {
98 "block_name_prefix": "rb.0.*", (glob)
99 "format": 1,
11fdf7f2 100 "id": "",
7c673cae
FG
101 "name": "foo",
102 "object_size": 4194304,
103 "objects": 256,
104 "order": 22,
105 "protected": "false",
11fdf7f2
TL
106 "size": 1073741824,
107 "snapshot_count": 1
7c673cae 108 }
9f95a23c 109 $ rbd info foo@snap --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
110 <image>
111 <name>foo</name>
9f95a23c 112 <id/>
7c673cae
FG
113 <size>1073741824</size>
114 <objects>256</objects>
115 <order>22</order>
116 <object_size>4194304</object_size>
11fdf7f2 117 <snapshot_count>1</snapshot_count>
7c673cae
FG
118 <block_name_prefix>rb.0*</block_name_prefix> (glob)
119 <format>1</format>
120 <protected>false</protected>
121 </image>
122 $ rbd info bar
123 rbd image 'bar':
11fdf7f2
TL
124 \tsize 1 GiB in 256 objects (esc)
125 \torder 22 (4 MiB objects) (esc)
126 \tsnapshot_count: 2 (esc)
127 \tid:* (glob)
7c673cae
FG
128 [^^]+ (re)
129 \tformat: 2 (esc)
130 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
11fdf7f2 131 \top_features: (esc)
7c673cae 132 \tflags: (esc)
31f18b77 133 \tcreate_timestamp:* (glob)
11fdf7f2
TL
134 \taccess_timestamp:* (glob)
135 \tmodify_timestamp:* (glob)
9f95a23c 136 $ rbd info bar --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 137 {
11fdf7f2 138 "access_timestamp": "*", (glob)
7c673cae 139 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 140 "create_timestamp": "*", (glob)
7c673cae
FG
141 "features": [
142 "layering",
143 "exclusive-lock",
144 "object-map",
145 "fast-diff",
146 "deep-flatten"
147 ],
148 "flags": [],
149 "format": 2,
11fdf7f2
TL
150 "id": "*", (glob)
151 "modify_timestamp": "*", (glob)
7c673cae
FG
152 "name": "bar",
153 "object_size": 4194304,
154 "objects": 256,
11fdf7f2 155 "op_features": [],
7c673cae 156 "order": 22,
11fdf7f2
TL
157 "size": 1073741824,
158 "snapshot_count": 2
7c673cae 159 }
9f95a23c 160 $ rbd info bar --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
161 <image>
162 <name>bar</name>
11fdf7f2 163 <id>*</id> (glob)
7c673cae
FG
164 <size>1073741824</size>
165 <objects>256</objects>
166 <order>22</order>
167 <object_size>4194304</object_size>
11fdf7f2 168 <snapshot_count>2</snapshot_count>
7c673cae
FG
169 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
170 <format>2</format>
171 <features>
172 <feature>layering</feature>
173 <feature>exclusive-lock</feature>
174 <feature>object-map</feature>
175 <feature>fast-diff</feature>
176 <feature>deep-flatten</feature>
177 </features>
9f95a23c
TL
178 <op_features/>
179 <flags/>
31f18b77 180 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
181 <access_timestamp>*</access_timestamp> (glob)
182 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
183 </image>
184 $ rbd info bar@snap
185 rbd image 'bar':
11fdf7f2
TL
186 \tsize 512 MiB in 128 objects (esc)
187 \torder 22 (4 MiB objects) (esc)
188 \tsnapshot_count: 2 (esc)
189 \tid:* (glob)
7c673cae
FG
190 [^^]+ (re)
191 \tformat: 2 (esc)
192 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
11fdf7f2 193 \top_features: (esc)
7c673cae 194 \tflags: (esc)
31f18b77 195 \tcreate_timestamp:* (glob)
11fdf7f2
TL
196 \taccess_timestamp:* (glob)
197 \tmodify_timestamp:* (glob)
7c673cae 198 \tprotected: True (esc)
9f95a23c 199 $ rbd info bar@snap --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 200 {
11fdf7f2 201 "access_timestamp": "*", (glob)
7c673cae 202 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 203 "create_timestamp": "*", (glob)
7c673cae
FG
204 "features": [
205 "layering",
206 "exclusive-lock",
207 "object-map",
208 "fast-diff",
209 "deep-flatten"
210 ],
211 "flags": [],
212 "format": 2,
11fdf7f2
TL
213 "id": "*", (glob)
214 "modify_timestamp": "*", (glob)
7c673cae
FG
215 "name": "bar",
216 "object_size": 4194304,
217 "objects": 128,
11fdf7f2 218 "op_features": [],
7c673cae
FG
219 "order": 22,
220 "protected": "true",
11fdf7f2
TL
221 "size": 536870912,
222 "snapshot_count": 2
7c673cae 223 }
9f95a23c 224 $ rbd info bar@snap --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
225 <image>
226 <name>bar</name>
11fdf7f2 227 <id>*</id> (glob)
7c673cae
FG
228 <size>536870912</size>
229 <objects>128</objects>
230 <order>22</order>
231 <object_size>4194304</object_size>
11fdf7f2 232 <snapshot_count>2</snapshot_count>
7c673cae
FG
233 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
234 <format>2</format>
235 <features>
236 <feature>layering</feature>
237 <feature>exclusive-lock</feature>
238 <feature>object-map</feature>
239 <feature>fast-diff</feature>
240 <feature>deep-flatten</feature>
241 </features>
9f95a23c
TL
242 <op_features/>
243 <flags/>
31f18b77 244 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
245 <access_timestamp>*</access_timestamp> (glob)
246 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
247 <protected>true</protected>
248 </image>
249 $ rbd info bar@snap2
250 rbd image 'bar':
11fdf7f2
TL
251 \tsize 1 GiB in 256 objects (esc)
252 \torder 22 (4 MiB objects) (esc)
253 \tsnapshot_count: 2 (esc)
254 \tid:* (glob)
7c673cae
FG
255 [^^]+ (re)
256 \tformat: 2 (esc)
257 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
11fdf7f2 258 \top_features: (esc)
7c673cae 259 \tflags: (esc)
31f18b77 260 \tcreate_timestamp:* (glob)
11fdf7f2
TL
261 \taccess_timestamp:* (glob)
262 \tmodify_timestamp:* (glob)
7c673cae 263 \tprotected: False (esc)
9f95a23c 264 $ rbd info bar@snap2 --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 265 {
11fdf7f2 266 "access_timestamp": "*", (glob)
7c673cae 267 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 268 "create_timestamp": "*", (glob)
7c673cae
FG
269 "features": [
270 "layering",
271 "exclusive-lock",
272 "object-map",
273 "fast-diff",
274 "deep-flatten"
275 ],
276 "flags": [],
277 "format": 2,
11fdf7f2
TL
278 "id": "*", (glob)
279 "modify_timestamp": "*", (glob)
7c673cae
FG
280 "name": "bar",
281 "object_size": 4194304,
282 "objects": 256,
11fdf7f2 283 "op_features": [],
7c673cae
FG
284 "order": 22,
285 "protected": "false",
11fdf7f2
TL
286 "size": 1073741824,
287 "snapshot_count": 2
7c673cae 288 }
9f95a23c 289 $ rbd info bar@snap2 --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
290 <image>
291 <name>bar</name>
11fdf7f2 292 <id>*</id> (glob)
7c673cae
FG
293 <size>1073741824</size>
294 <objects>256</objects>
295 <order>22</order>
296 <object_size>4194304</object_size>
11fdf7f2 297 <snapshot_count>2</snapshot_count>
7c673cae
FG
298 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
299 <format>2</format>
300 <features>
301 <feature>layering</feature>
302 <feature>exclusive-lock</feature>
303 <feature>object-map</feature>
304 <feature>fast-diff</feature>
305 <feature>deep-flatten</feature>
306 </features>
9f95a23c
TL
307 <op_features/>
308 <flags/>
31f18b77 309 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
310 <access_timestamp>*</access_timestamp> (glob)
311 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
312 <protected>false</protected>
313 </image>
314 $ rbd info baz
315 rbd image 'baz':
11fdf7f2
TL
316 \tsize 2 GiB in 512 objects (esc)
317 \torder 22 (4 MiB objects) (esc)
318 \tsnapshot_count: 0 (esc)
319 \tid:* (glob)
7c673cae
FG
320 [^^]+ (re)
321 \tformat: 2 (esc)
322 \tfeatures: layering (esc)
11fdf7f2 323 \top_features: (esc)
7c673cae 324 \tflags: (esc)
31f18b77 325 \tcreate_timestamp:* (glob)
11fdf7f2
TL
326 \taccess_timestamp:* (glob)
327 \tmodify_timestamp:* (glob)
9f95a23c 328 $ rbd info baz --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 329 {
11fdf7f2 330 "access_timestamp": "*", (glob)
7c673cae 331 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 332 "create_timestamp": "*", (glob)
7c673cae
FG
333 "features": [
334 "layering"
335 ],
336 "flags": [],
337 "format": 2,
11fdf7f2
TL
338 "id": "*", (glob)
339 "modify_timestamp": "*", (glob)
7c673cae
FG
340 "name": "baz",
341 "object_size": 4194304,
342 "objects": 512,
11fdf7f2 343 "op_features": [],
7c673cae 344 "order": 22,
11fdf7f2
TL
345 "size": 2147483648,
346 "snapshot_count": 0
7c673cae 347 }
9f95a23c 348 $ rbd info baz --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
349 <image>
350 <name>baz</name>
11fdf7f2 351 <id>*</id> (glob)
7c673cae
FG
352 <size>2147483648</size>
353 <objects>512</objects>
354 <order>22</order>
355 <object_size>4194304</object_size>
11fdf7f2 356 <snapshot_count>0</snapshot_count>
7c673cae
FG
357 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
358 <format>2</format>
359 <features>
360 <feature>layering</feature>
361 </features>
9f95a23c
TL
362 <op_features/>
363 <flags/>
31f18b77 364 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
365 <access_timestamp>*</access_timestamp> (glob)
366 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
367 </image>
368 $ rbd info quux
369 rbd image 'quux':
11fdf7f2
TL
370 \tsize 1 MiB in 1 objects (esc)
371 \torder 22 (4 MiB objects) (esc)
372 \tsnapshot_count: 0 (esc)
7c673cae
FG
373 [^^]+ (re)
374 \tformat: 1 (esc)
9f95a23c 375 $ rbd info quux --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
376 {
377 "block_name_prefix": "rb.0.*", (glob)
378 "format": 1,
11fdf7f2 379 "id": "",
7c673cae
FG
380 "name": "quux",
381 "object_size": 4194304,
382 "objects": 1,
383 "order": 22,
11fdf7f2
TL
384 "size": 1048576,
385 "snapshot_count": 0
7c673cae 386 }
9f95a23c 387 $ rbd info quux --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
388 <image>
389 <name>quux</name>
9f95a23c 390 <id/>
7c673cae
FG
391 <size>1048576</size>
392 <objects>1</objects>
393 <order>22</order>
394 <object_size>4194304</object_size>
11fdf7f2 395 <snapshot_count>0</snapshot_count>
7c673cae
FG
396 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
397 <format>1</format>
398 </image>
399 $ rbd info rbd_other/child
400 rbd image 'child':
11fdf7f2
TL
401 \tsize 512 MiB in 128 objects (esc)
402 \torder 22 (4 MiB objects) (esc)
403 \tsnapshot_count: 1 (esc)
404 \tid:* (glob)
7c673cae
FG
405 [^^]+ (re)
406 \tformat: 2 (esc)
407 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
11fdf7f2 408 \top_features: (esc)
7c673cae 409 \tflags: (esc)
31f18b77 410 \tcreate_timestamp:* (glob)
11fdf7f2
TL
411 \taccess_timestamp:* (glob)
412 \tmodify_timestamp:* (glob)
9f95a23c 413 $ rbd info rbd_other/child --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 414 {
11fdf7f2 415 "access_timestamp": "*", (glob)
7c673cae 416 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 417 "create_timestamp": "*", (glob)
7c673cae
FG
418 "features": [
419 "layering",
420 "exclusive-lock",
421 "object-map",
422 "fast-diff"
423 ],
424 "flags": [],
425 "format": 2,
11fdf7f2
TL
426 "id": "*", (glob)
427 "modify_timestamp": "*", (glob)
7c673cae
FG
428 "name": "child",
429 "object_size": 4194304,
430 "objects": 128,
11fdf7f2 431 "op_features": [],
7c673cae 432 "order": 22,
11fdf7f2
TL
433 "size": 536870912,
434 "snapshot_count": 1
7c673cae 435 }
9f95a23c 436 $ rbd info rbd_other/child --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
437 <image>
438 <name>child</name>
11fdf7f2 439 <id>*</id> (glob)
7c673cae
FG
440 <size>536870912</size>
441 <objects>128</objects>
442 <order>22</order>
443 <object_size>4194304</object_size>
11fdf7f2 444 <snapshot_count>1</snapshot_count>
7c673cae
FG
445 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
446 <format>2</format>
447 <features>
448 <feature>layering</feature>
449 <feature>exclusive-lock</feature>
450 <feature>object-map</feature>
451 <feature>fast-diff</feature>
452 </features>
9f95a23c
TL
453 <op_features/>
454 <flags/>
31f18b77 455 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
456 <access_timestamp>*</access_timestamp> (glob)
457 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
458 </image>
459 $ rbd info rbd_other/child@snap
460 rbd image 'child':
11fdf7f2
TL
461 \tsize 512 MiB in 128 objects (esc)
462 \torder 22 (4 MiB objects) (esc)
463 \tsnapshot_count: 1 (esc)
464 \tid:* (glob)
7c673cae
FG
465 [^^]+ (re)
466 \tformat: 2 (esc)
467 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
11fdf7f2 468 \top_features: (esc)
7c673cae 469 \tflags: (esc)
31f18b77 470 \tcreate_timestamp:* (glob)
11fdf7f2
TL
471 \taccess_timestamp:* (glob)
472 \tmodify_timestamp:* (glob)
7c673cae
FG
473 \tprotected: False (esc)
474 \tparent: rbd/bar@snap (esc)
11fdf7f2 475 \toverlap: 512 MiB (esc)
9f95a23c 476 $ rbd info rbd_other/child@snap --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 477 {
11fdf7f2 478 "access_timestamp": "*", (glob)
7c673cae 479 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 480 "create_timestamp": "*", (glob)
7c673cae
FG
481 "features": [
482 "layering",
483 "exclusive-lock",
484 "object-map",
485 "fast-diff"
486 ],
487 "flags": [],
488 "format": 2,
11fdf7f2
TL
489 "id": "*", (glob)
490 "modify_timestamp": "*", (glob)
7c673cae
FG
491 "name": "child",
492 "object_size": 4194304,
493 "objects": 128,
11fdf7f2 494 "op_features": [],
7c673cae
FG
495 "order": 22,
496 "parent": {
11fdf7f2 497 "id": "*", (glob)
7c673cae
FG
498 "image": "bar",
499 "overlap": 536870912,
500 "pool": "rbd",
11fdf7f2
TL
501 "pool_namespace": "",
502 "snapshot": "snap",
503 "trash": false
7c673cae
FG
504 },
505 "protected": "false",
11fdf7f2
TL
506 "size": 536870912,
507 "snapshot_count": 1
7c673cae 508 }
9f95a23c 509 $ rbd info rbd_other/child@snap --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
510 <image>
511 <name>child</name>
11fdf7f2 512 <id>*</id> (glob)
7c673cae
FG
513 <size>536870912</size>
514 <objects>128</objects>
515 <order>22</order>
516 <object_size>4194304</object_size>
11fdf7f2 517 <snapshot_count>1</snapshot_count>
7c673cae
FG
518 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
519 <format>2</format>
520 <features>
521 <feature>layering</feature>
522 <feature>exclusive-lock</feature>
523 <feature>object-map</feature>
524 <feature>fast-diff</feature>
525 </features>
9f95a23c
TL
526 <op_features/>
527 <flags/>
31f18b77 528 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
529 <access_timestamp>*</access_timestamp> (glob)
530 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
531 <protected>false</protected>
532 <parent>
533 <pool>rbd</pool>
9f95a23c 534 <pool_namespace/>
7c673cae 535 <image>bar</image>
11fdf7f2 536 <id>*</id> (glob)
7c673cae 537 <snapshot>snap</snapshot>
11fdf7f2 538 <trash>false</trash>
7c673cae
FG
539 <overlap>536870912</overlap>
540 </parent>
541 </image>
542 $ rbd info rbd_other/deep-flatten-child
543 rbd image 'deep-flatten-child':
11fdf7f2
TL
544 \tsize 512 MiB in 128 objects (esc)
545 \torder 22 (4 MiB objects) (esc)
546 \tsnapshot_count: 1 (esc)
547 \tid:* (glob)
7c673cae
FG
548 [^^]+ (re)
549 \tformat: 2 (esc)
550 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
11fdf7f2 551 \top_features: (esc)
7c673cae 552 \tflags: (esc)
31f18b77 553 \tcreate_timestamp:* (glob)
11fdf7f2
TL
554 \taccess_timestamp:* (glob)
555 \tmodify_timestamp:* (glob)
9f95a23c 556 $ rbd info rbd_other/deep-flatten-child --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 557 {
11fdf7f2 558 "access_timestamp": "*", (glob)
7c673cae 559 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 560 "create_timestamp": "*", (glob)
7c673cae
FG
561 "features": [
562 "layering",
563 "exclusive-lock",
564 "object-map",
565 "fast-diff",
566 "deep-flatten"
567 ],
568 "flags": [],
569 "format": 2,
11fdf7f2
TL
570 "id": "*", (glob)
571 "modify_timestamp": "*", (glob)
7c673cae
FG
572 "name": "deep-flatten-child",
573 "object_size": 4194304,
574 "objects": 128,
11fdf7f2 575 "op_features": [],
7c673cae 576 "order": 22,
11fdf7f2
TL
577 "size": 536870912,
578 "snapshot_count": 1
7c673cae 579 }
9f95a23c 580 $ rbd info rbd_other/deep-flatten-child --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
581 <image>
582 <name>deep-flatten-child</name>
11fdf7f2 583 <id>*</id> (glob)
7c673cae
FG
584 <size>536870912</size>
585 <objects>128</objects>
586 <order>22</order>
587 <object_size>4194304</object_size>
11fdf7f2 588 <snapshot_count>1</snapshot_count>
7c673cae
FG
589 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
590 <format>2</format>
591 <features>
592 <feature>layering</feature>
593 <feature>exclusive-lock</feature>
594 <feature>object-map</feature>
595 <feature>fast-diff</feature>
596 <feature>deep-flatten</feature>
597 </features>
9f95a23c
TL
598 <op_features/>
599 <flags/>
31f18b77 600 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
601 <access_timestamp>*</access_timestamp> (glob)
602 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
603 </image>
604 $ rbd info rbd_other/deep-flatten-child@snap
605 rbd image 'deep-flatten-child':
11fdf7f2
TL
606 \tsize 512 MiB in 128 objects (esc)
607 \torder 22 (4 MiB objects) (esc)
608 \tsnapshot_count: 1 (esc)
609 \tid:* (glob)
7c673cae
FG
610 [^^]+ (re)
611 \tformat: 2 (esc)
612 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
11fdf7f2 613 \top_features: (esc)
7c673cae 614 \tflags: (esc)
31f18b77 615 \tcreate_timestamp:* (glob)
11fdf7f2
TL
616 \taccess_timestamp:* (glob)
617 \tmodify_timestamp:* (glob)
7c673cae 618 \tprotected: False (esc)
9f95a23c 619 $ rbd info rbd_other/deep-flatten-child@snap --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 620 {
11fdf7f2 621 "access_timestamp": "*", (glob)
7c673cae 622 "block_name_prefix": "rbd_data.*", (glob)
31f18b77 623 "create_timestamp": "*", (glob)
7c673cae
FG
624 "features": [
625 "layering",
626 "exclusive-lock",
627 "object-map",
628 "fast-diff",
629 "deep-flatten"
630 ],
631 "flags": [],
632 "format": 2,
11fdf7f2
TL
633 "id": "*", (glob)
634 "modify_timestamp": "*", (glob)
7c673cae
FG
635 "name": "deep-flatten-child",
636 "object_size": 4194304,
637 "objects": 128,
11fdf7f2 638 "op_features": [],
7c673cae
FG
639 "order": 22,
640 "protected": "false",
11fdf7f2
TL
641 "size": 536870912,
642 "snapshot_count": 1
7c673cae 643 }
9f95a23c 644 $ rbd info rbd_other/deep-flatten-child@snap --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
645 <image>
646 <name>deep-flatten-child</name>
11fdf7f2 647 <id>*</id> (glob)
7c673cae
FG
648 <size>536870912</size>
649 <objects>128</objects>
650 <order>22</order>
651 <object_size>4194304</object_size>
11fdf7f2 652 <snapshot_count>1</snapshot_count>
7c673cae
FG
653 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
654 <format>2</format>
655 <features>
656 <feature>layering</feature>
657 <feature>exclusive-lock</feature>
658 <feature>object-map</feature>
659 <feature>fast-diff</feature>
660 <feature>deep-flatten</feature>
661 </features>
9f95a23c
TL
662 <op_features/>
663 <flags/>
31f18b77 664 <create_timestamp>*</create_timestamp> (glob)
11fdf7f2
TL
665 <access_timestamp>*</access_timestamp> (glob)
666 <modify_timestamp>*</modify_timestamp> (glob)
7c673cae
FG
667 <protected>false</protected>
668 </image>
669 $ rbd list
670 foo
671 quux
672 bar
673 baz
674 quuy
9f95a23c 675 $ rbd list --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
676 [
677 "foo",
678 "quux",
679 "bar",
680 "baz",
681 "quuy"
682 ]
9f95a23c 683 $ rbd list --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
684 <images>
685 <name>foo</name>
686 <name>quux</name>
687 <name>bar</name>
688 <name>baz</name>
689 <name>quuy</name>
690 </images>
691 $ rbd list -l
9f95a23c
TL
692 NAME SIZE PARENT FMT PROT LOCK
693 foo 1 GiB 1
694 foo@snap 1 GiB 1
695 quux 1 MiB 1 excl
696 bar 1 GiB 2
697 bar@snap 512 MiB 2 yes
698 bar@snap2 1 GiB 2
699 baz 2 GiB 2 shr
700 quuy 2 GiB 2
701 $ rbd list -l --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
702 [
703 {
704 "format": 1,
9f95a23c 705 "id": "",
7c673cae
FG
706 "image": "foo",
707 "size": 1073741824
708 },
709 {
710 "format": 1,
9f95a23c 711 "id": "",
7c673cae
FG
712 "image": "foo",
713 "protected": "false",
714 "size": 1073741824,
9f95a23c
TL
715 "snapshot": "snap",
716 "snapshot_id": * (glob)
7c673cae
FG
717 },
718 {
719 "format": 1,
9f95a23c 720 "id": "",
7c673cae
FG
721 "image": "quux",
722 "lock_type": "exclusive",
723 "size": 1048576
724 },
725 {
726 "format": 2,
9f95a23c 727 "id": "*", (glob)
7c673cae
FG
728 "image": "bar",
729 "size": 1073741824
730 },
731 {
732 "format": 2,
9f95a23c 733 "id": "*", (glob)
7c673cae
FG
734 "image": "bar",
735 "protected": "true",
736 "size": 536870912,
9f95a23c
TL
737 "snapshot": "snap",
738 "snapshot_id": * (glob)
7c673cae
FG
739 },
740 {
741 "format": 2,
9f95a23c 742 "id": "*", (glob)
7c673cae
FG
743 "image": "bar",
744 "protected": "false",
745 "size": 1073741824,
9f95a23c
TL
746 "snapshot": "snap2",
747 "snapshot_id": * (glob)
7c673cae
FG
748 },
749 {
750 "format": 2,
9f95a23c 751 "id": "*", (glob)
7c673cae
FG
752 "image": "baz",
753 "lock_type": "shared",
754 "size": 2147483648
755 },
756 {
757 "format": 2,
9f95a23c 758 "id": "*", (glob)
7c673cae
FG
759 "image": "quuy",
760 "size": 2147483648
761 }
762 ]
9f95a23c 763 $ rbd list -l --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
764 <images>
765 <image>
766 <image>foo</image>
9f95a23c 767 <id/>
7c673cae
FG
768 <size>1073741824</size>
769 <format>1</format>
770 </image>
771 <snapshot>
772 <image>foo</image>
9f95a23c 773 <id/>
7c673cae 774 <snapshot>snap</snapshot>
9f95a23c 775 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
776 <size>1073741824</size>
777 <format>1</format>
778 <protected>false</protected>
779 </snapshot>
780 <image>
781 <image>quux</image>
9f95a23c 782 <id/>
7c673cae
FG
783 <size>1048576</size>
784 <format>1</format>
785 <lock_type>exclusive</lock_type>
786 </image>
787 <image>
788 <image>bar</image>
9f95a23c 789 <id>*</id> (glob)
7c673cae
FG
790 <size>1073741824</size>
791 <format>2</format>
792 </image>
793 <snapshot>
794 <image>bar</image>
9f95a23c 795 <id>*</id> (glob)
7c673cae 796 <snapshot>snap</snapshot>
9f95a23c 797 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
798 <size>536870912</size>
799 <format>2</format>
800 <protected>true</protected>
801 </snapshot>
802 <snapshot>
803 <image>bar</image>
9f95a23c 804 <id>*</id> (glob)
7c673cae 805 <snapshot>snap2</snapshot>
9f95a23c 806 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
807 <size>1073741824</size>
808 <format>2</format>
809 <protected>false</protected>
810 </snapshot>
811 <image>
812 <image>baz</image>
9f95a23c 813 <id>*</id> (glob)
7c673cae
FG
814 <size>2147483648</size>
815 <format>2</format>
816 <lock_type>shared</lock_type>
817 </image>
818 <image>
819 <image>quuy</image>
9f95a23c 820 <id>*</id> (glob)
7c673cae
FG
821 <size>2147483648</size>
822 <format>2</format>
823 </image>
824 </images>
825 $ rbd list rbd_other
826 child
827 deep-flatten-child
9f95a23c 828 $ rbd list rbd_other --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
829 [
830 "child",
831 "deep-flatten-child"
832 ]
9f95a23c 833 $ rbd list rbd_other --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
834 <images>
835 <name>child</name>
836 <name>deep-flatten-child</name>
837 </images>
838 $ rbd list rbd_other -l
9f95a23c
TL
839 NAME SIZE PARENT FMT PROT LOCK
840 child 512 MiB 2
841 child@snap 512 MiB rbd/bar@snap 2
842 deep-flatten-child 512 MiB 2
843 deep-flatten-child@snap 512 MiB 2
844 $ rbd list rbd_other -l --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
845 [
846 {
847 "format": 2,
9f95a23c 848 "id": "*", (glob)
7c673cae
FG
849 "image": "child",
850 "size": 536870912
851 },
852 {
853 "format": 2,
9f95a23c 854 "id": "*", (glob)
7c673cae
FG
855 "image": "child",
856 "parent": {
857 "image": "bar",
858 "pool": "rbd",
11fdf7f2 859 "pool_namespace": "",
7c673cae
FG
860 "snapshot": "snap"
861 },
862 "protected": "false",
863 "size": 536870912,
9f95a23c
TL
864 "snapshot": "snap",
865 "snapshot_id": * (glob)
7c673cae
FG
866 },
867 {
868 "format": 2,
9f95a23c 869 "id": "*", (glob)
7c673cae
FG
870 "image": "deep-flatten-child",
871 "size": 536870912
872 },
873 {
874 "format": 2,
9f95a23c 875 "id": "*", (glob)
7c673cae
FG
876 "image": "deep-flatten-child",
877 "protected": "false",
878 "size": 536870912,
9f95a23c
TL
879 "snapshot": "snap",
880 "snapshot_id": * (glob)
7c673cae
FG
881 }
882 ]
9f95a23c 883 $ rbd list rbd_other -l --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
884 <images>
885 <image>
886 <image>child</image>
9f95a23c 887 <id>*</id> (glob)
7c673cae
FG
888 <size>536870912</size>
889 <format>2</format>
890 </image>
891 <snapshot>
892 <image>child</image>
9f95a23c 893 <id>*</id> (glob)
7c673cae 894 <snapshot>snap</snapshot>
9f95a23c 895 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
896 <size>536870912</size>
897 <parent>
898 <pool>rbd</pool>
9f95a23c 899 <pool_namespace/>
7c673cae
FG
900 <image>bar</image>
901 <snapshot>snap</snapshot>
902 </parent>
903 <format>2</format>
904 <protected>false</protected>
905 </snapshot>
906 <image>
907 <image>deep-flatten-child</image>
9f95a23c 908 <id>*</id> (glob)
7c673cae
FG
909 <size>536870912</size>
910 <format>2</format>
911 </image>
912 <snapshot>
913 <image>deep-flatten-child</image>
9f95a23c 914 <id>*</id> (glob)
7c673cae 915 <snapshot>snap</snapshot>
9f95a23c 916 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
917 <size>536870912</size>
918 <format>2</format>
919 <protected>false</protected>
920 </snapshot>
921 </images>
922 $ rbd lock list foo
9f95a23c 923 $ rbd lock list foo --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
11fdf7f2 924 []
9f95a23c
TL
925 $ rbd lock list foo --format xml | xmlstarlet format -s 2 -o || true
926 <locks/>
7c673cae
FG
927 $ rbd lock list quux
928 There is 1 exclusive lock on this image.
929 Locker*ID*Address* (glob)
930 client.* id * (glob)
9f95a23c 931 $ rbd lock list quux --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
11fdf7f2
TL
932 [
933 {
7c673cae 934 "address": "*", (glob)
11fdf7f2 935 "id": "id",
7c673cae
FG
936 "locker": "client.*" (glob)
937 }
11fdf7f2 938 ]
9f95a23c 939 $ rbd lock list quux --format xml | xmlstarlet format -s 2 -o || true
7c673cae 940 <locks>
11fdf7f2
TL
941 <lock>
942 <id>id</id>
7c673cae
FG
943 <locker>client.*</locker> (glob)
944 <address>*</address> (glob)
11fdf7f2 945 </lock>
7c673cae
FG
946 </locks>
947 $ rbd lock list baz
948 There are 3 shared locks on this image.
949 Lock tag: tag
950 Locker*ID*Address* (glob)
951 client.*id[123].* (re)
952 client.*id[123].* (re)
953 client.*id[123].* (re)
9f95a23c 954 $ rbd lock list baz --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
11fdf7f2
TL
955 [
956 {
7c673cae 957 "address": "*", (glob)
11fdf7f2 958 "id": "id*", (glob)
7c673cae
FG
959 "locker": "client.*" (glob)
960 },
11fdf7f2 961 {
7c673cae 962 "address": "*", (glob)
11fdf7f2 963 "id": "id*", (glob)
7c673cae
FG
964 "locker": "client.*" (glob)
965 },
11fdf7f2 966 {
7c673cae 967 "address": "*", (glob)
11fdf7f2 968 "id": "id*", (glob)
7c673cae
FG
969 "locker": "client.*" (glob)
970 }
11fdf7f2 971 ]
9f95a23c 972 $ rbd lock list baz --format xml | xmlstarlet format -s 2 -o || true
7c673cae 973 <locks>
11fdf7f2
TL
974 <lock>
975 <id>id*</id> (glob)
7c673cae
FG
976 <locker>client.*</locker> (glob)
977 <address>*</address> (glob)
11fdf7f2
TL
978 </lock>
979 <lock>
980 <id>id*</id> (glob)
7c673cae
FG
981 <locker>client.*</locker> (glob)
982 <address>*</address> (glob)
11fdf7f2
TL
983 </lock>
984 <lock>
985 <id>id*</id> (glob)
7c673cae
FG
986 <locker>client.*</locker> (glob)
987 <address>*</address> (glob)
11fdf7f2 988 </lock>
7c673cae
FG
989 </locks>
990 $ rbd snap list foo
11fdf7f2
TL
991 SNAPID*NAME*SIZE*PROTECTED*TIMESTAMP* (glob)
992 *snap*1 GiB* (glob)
9f95a23c 993 $ rbd snap list foo --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
994 [
995 {
996 "id": *, (glob)
997 "name": "snap",
11fdf7f2 998 "protected": "false",
7c673cae
FG
999 "size": 1073741824,
1000 "timestamp": ""
1001 }
1002 ]
9f95a23c 1003 $ rbd snap list foo --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
1004 <snapshots>
1005 <snapshot>
1006 <id>*</id> (glob)
1007 <name>snap</name>
1008 <size>1073741824</size>
11fdf7f2 1009 <protected>false</protected>
9f95a23c 1010 <timestamp/>
7c673cae
FG
1011 </snapshot>
1012 </snapshots>
1013 $ rbd snap list bar
11fdf7f2
TL
1014 SNAPID*NAME*SIZE*PROTECTED*TIMESTAMP* (glob)
1015 *snap*512 MiB*yes* (glob)
1016 *snap2*1 GiB* (glob)
9f95a23c 1017 $ rbd snap list bar --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
1018 [
1019 {
1020 "id": *, (glob)
1021 "name": "snap",
11fdf7f2 1022 "protected": "true",
7c673cae
FG
1023 "size": 536870912,
1024 "timestamp": * (glob)
1025 },
1026 {
1027 "id": *, (glob)
1028 "name": "snap2",
11fdf7f2 1029 "protected": "false",
7c673cae
FG
1030 "size": 1073741824,
1031 "timestamp": * (glob)
1032 }
1033 ]
9f95a23c 1034 $ rbd snap list bar --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
1035 <snapshots>
1036 <snapshot>
1037 <id>*</id> (glob)
1038 <name>snap</name>
1039 <size>536870912</size>
11fdf7f2 1040 <protected>true</protected>
7c673cae
FG
1041 <timestamp>*</timestamp> (glob)
1042 </snapshot>
1043 <snapshot>
1044 <id>*</id> (glob)
1045 <name>snap2</name>
1046 <size>1073741824</size>
11fdf7f2 1047 <protected>false</protected>
7c673cae
FG
1048 <timestamp>*</timestamp> (glob)
1049 </snapshot>
1050 </snapshots>
1051 $ rbd snap list baz
9f95a23c 1052 $ rbd snap list baz --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae 1053 []
9f95a23c
TL
1054 $ rbd snap list baz --format xml | xmlstarlet format -s 2 -o || true
1055 <snapshots/>
7c673cae 1056 $ rbd snap list rbd_other/child
11fdf7f2
TL
1057 SNAPID*NAME*SIZE*PROTECTED*TIMESTAMP* (glob)
1058 *snap*512 MiB* (glob)
9f95a23c 1059 $ rbd snap list rbd_other/child --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
1060 [
1061 {
1062 "id": *, (glob)
1063 "name": "snap",
11fdf7f2 1064 "protected": "false",
7c673cae
FG
1065 "size": 536870912,
1066 "timestamp": * (glob)
1067 }
1068 ]
9f95a23c 1069 $ rbd snap list rbd_other/child --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
1070 <snapshots>
1071 <snapshot>
1072 <id>*</id> (glob)
1073 <name>snap</name>
1074 <size>536870912</size>
11fdf7f2 1075 <protected>false</protected>
7c673cae
FG
1076 <timestamp>*</timestamp> (glob)
1077 </snapshot>
1078 </snapshots>
1079 $ rbd disk-usage --pool rbd_other 2>/dev/null
9f95a23c
TL
1080 NAME PROVISIONED USED
1081 child@snap 512 MiB 0 B
1082 child 512 MiB 4 MiB
1083 deep-flatten-child@snap 512 MiB 0 B
1084 deep-flatten-child 512 MiB 0 B
1085 <TOTAL> 1 GiB 4 MiB
1086 $ rbd disk-usage --pool rbd_other --format json | python3 -mjson.tool --sort-keys | sed 's/,$/, /'
7c673cae
FG
1087 {
1088 "images": [
1089 {
9f95a23c 1090 "id": "*", (glob)
7c673cae
FG
1091 "name": "child",
1092 "provisioned_size": 536870912,
1093 "snapshot": "snap",
9f95a23c 1094 "snapshot_id": *, (glob)
7c673cae
FG
1095 "used_size": 0
1096 },
1097 {
9f95a23c 1098 "id": "*", (glob)
7c673cae
FG
1099 "name": "child",
1100 "provisioned_size": 536870912,
1101 "used_size": 4194304
1102 },
1103 {
9f95a23c 1104 "id": "*", (glob)
7c673cae
FG
1105 "name": "deep-flatten-child",
1106 "provisioned_size": 536870912,
1107 "snapshot": "snap",
9f95a23c 1108 "snapshot_id": *, (glob)
7c673cae
FG
1109 "used_size": 0
1110 },
1111 {
9f95a23c 1112 "id": "*", (glob)
7c673cae
FG
1113 "name": "deep-flatten-child",
1114 "provisioned_size": 536870912,
1115 "used_size": 0
1116 }
1117 ],
1118 "total_provisioned_size": 1073741824,
1119 "total_used_size": 4194304
1120 }
9f95a23c 1121 $ rbd disk-usage --pool rbd_other --format xml | xmlstarlet format -s 2 -o || true
7c673cae
FG
1122 <stats>
1123 <images>
1124 <image>
1125 <name>child</name>
9f95a23c 1126 <id>*</id> (glob)
7c673cae 1127 <snapshot>snap</snapshot>
9f95a23c 1128 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
1129 <provisioned_size>536870912</provisioned_size>
1130 <used_size>0</used_size>
1131 </image>
1132 <image>
1133 <name>child</name>
9f95a23c 1134 <id>*</id> (glob)
7c673cae
FG
1135 <provisioned_size>536870912</provisioned_size>
1136 <used_size>4194304</used_size>
1137 </image>
1138 <image>
1139 <name>deep-flatten-child</name>
9f95a23c 1140 <id>*</id> (glob)
7c673cae 1141 <snapshot>snap</snapshot>
9f95a23c 1142 <snapshot_id>*</snapshot_id> (glob)
7c673cae
FG
1143 <provisioned_size>536870912</provisioned_size>
1144 <used_size>0</used_size>
1145 </image>
1146 <image>
1147 <name>deep-flatten-child</name>
9f95a23c 1148 <id>*</id> (glob)
7c673cae
FG
1149 <provisioned_size>536870912</provisioned_size>
1150 <used_size>0</used_size>
1151 </image>
1152 </images>
1153 <total_provisioned_size>1073741824</total_provisioned_size>
1154 <total_used_size>4194304</total_used_size>
1155 </stats>
1156
1157# cleanup
1158 $ rbd snap remove --no-progress rbd_other/deep-flatten-child@snap
1159 $ rbd snap remove --no-progress rbd_other/child@snap
1160 $ rbd snap unprotect bar@snap
1161 $ rbd snap purge bar 2> /dev/null
1162 $ rbd snap purge foo 2> /dev/null
1163 $ rbd rm rbd_other/deep-flatten-child 2> /dev/null
1164 $ rbd rm rbd_other/child 2> /dev/null
1165 $ rbd rm foo 2> /dev/null
1166 $ rbd rm bar 2> /dev/null
1167 $ rbd rm quux 2> /dev/null
1168 $ rbd rm quuy 2> /dev/null
1169 $ rbd rm baz 2> /dev/null
1170 $ ceph osd pool delete rbd_other rbd_other --yes-i-really-really-mean-it
1171 pool 'rbd_other' removed