]> git.proxmox.com Git - ceph.git/blame - ceph/src/test/cli-integration/rbd/formatted-output.t
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / test / cli-integration / rbd / formatted-output.t
CommitLineData
7c673cae
FG
1ls on empty pool never containing images
2========================================
3 $ ceph osd pool create rbd_other 8
4 pool 'rbd_other' created
5 $ rados -p rbd rm rbd_directory >/dev/null 2>&1 || true
6 $ rbd ls
7 $ rbd ls --format json
8 [] (no-eol)
9 $ rbd ls --format xml
10 <images></images> (no-eol)
11
12create
13=======
14 $ rbd create -s 1024 --image-format 1 foo
15 rbd: image format 1 is deprecated
16 $ rbd create -s 512 --image-format 2 bar
17 $ rbd create -s 2048 --image-format 2 --image-feature layering baz
18 $ rbd create -s 1 --image-format 1 quux
19 rbd: image format 1 is deprecated
20 $ rbd create -s 1G --image-format 2 quuy
21
22snapshot
23========
24 $ rbd snap create bar@snap
25 $ rbd resize -s 1024 --no-progress bar
26 $ rbd resize -s 2G --no-progress quuy
27 $ rbd snap create bar@snap2
28 $ rbd snap create foo@snap
29
30clone
31=====
32 $ rbd snap protect bar@snap
33 $ rbd clone --image-feature layering,exclusive-lock,object-map,fast-diff bar@snap rbd_other/child
34 $ rbd snap create rbd_other/child@snap
35 $ rbd flatten rbd_other/child 2> /dev/null
36 $ rbd bench rbd_other/child --io-type write --io-pattern seq --io-total 1B > /dev/null 2>&1
37 $ rbd clone bar@snap rbd_other/deep-flatten-child
38 $ rbd snap create rbd_other/deep-flatten-child@snap
39 $ rbd flatten rbd_other/deep-flatten-child 2> /dev/null
40
41lock
42====
43 $ rbd lock add quux id
44 $ rbd lock add baz id1 --shared tag
45 $ rbd lock add baz id2 --shared tag
46 $ rbd lock add baz id3 --shared tag
47
48test formatting
49===============
50 $ rbd children foo@snap
51 $ rbd children bar@snap
52 rbd_other/child
53 $ rbd children bar@snap2
54TODO: figure out why .* does not match the block_name_prefix line in rbd info.
55For now, use a more inclusive regex.
56 $ rbd info foo
57 rbd image 'foo':
58 \tsize 1024 MB in 256 objects (esc)
59 \torder 22 (4096 kB objects) (esc)
60 [^^]+ (re)
61 \tformat: 1 (esc)
62 $ rbd info foo --format json | python -mjson.tool | sed 's/,$/, /'
63 {
64 "block_name_prefix": "rb.0.*", (glob)
65 "format": 1,
66 "name": "foo",
67 "object_size": 4194304,
68 "objects": 256,
69 "order": 22,
70 "size": 1073741824
71 }
72The version of xml_pp included in ubuntu precise always prints a 'warning'
73whenever it is run. grep -v to ignore it, but still work on other distros.
74 $ rbd info foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
75 <image>
76 <name>foo</name>
77 <size>1073741824</size>
78 <objects>256</objects>
79 <order>22</order>
80 <object_size>4194304</object_size>
81 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
82 <format>1</format>
83 </image>
84 $ rbd info foo@snap
85 rbd image 'foo':
86 \tsize 1024 MB in 256 objects (esc)
87 \torder 22 (4096 kB objects) (esc)
88 [^^]+ (re)
89 \tformat: 1 (esc)
90 \tprotected: False (esc)
91 $ rbd info foo@snap --format json | python -mjson.tool | sed 's/,$/, /'
92 {
93 "block_name_prefix": "rb.0.*", (glob)
94 "format": 1,
95 "name": "foo",
96 "object_size": 4194304,
97 "objects": 256,
98 "order": 22,
99 "protected": "false",
100 "size": 1073741824
101 }
102 $ rbd info foo@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
103 <image>
104 <name>foo</name>
105 <size>1073741824</size>
106 <objects>256</objects>
107 <order>22</order>
108 <object_size>4194304</object_size>
109 <block_name_prefix>rb.0*</block_name_prefix> (glob)
110 <format>1</format>
111 <protected>false</protected>
112 </image>
113 $ rbd info bar
114 rbd image 'bar':
115 \tsize 1024 MB in 256 objects (esc)
116 \torder 22 (4096 kB objects) (esc)
117 [^^]+ (re)
118 \tformat: 2 (esc)
119 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
120 \tflags: (esc)
121 $ rbd info bar --format json | python -mjson.tool | sed 's/,$/, /'
122 {
123 "block_name_prefix": "rbd_data.*", (glob)
124 "features": [
125 "layering",
126 "exclusive-lock",
127 "object-map",
128 "fast-diff",
129 "deep-flatten"
130 ],
131 "flags": [],
132 "format": 2,
133 "name": "bar",
134 "object_size": 4194304,
135 "objects": 256,
136 "order": 22,
137 "size": 1073741824
138 }
139 $ rbd info bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
140 <image>
141 <name>bar</name>
142 <size>1073741824</size>
143 <objects>256</objects>
144 <order>22</order>
145 <object_size>4194304</object_size>
146 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
147 <format>2</format>
148 <features>
149 <feature>layering</feature>
150 <feature>exclusive-lock</feature>
151 <feature>object-map</feature>
152 <feature>fast-diff</feature>
153 <feature>deep-flatten</feature>
154 </features>
155 <flags></flags>
156 </image>
157 $ rbd info bar@snap
158 rbd image 'bar':
159 \tsize 512 MB in 128 objects (esc)
160 \torder 22 (4096 kB objects) (esc)
161 [^^]+ (re)
162 \tformat: 2 (esc)
163 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
164 \tflags: (esc)
165 \tprotected: True (esc)
166 $ rbd info bar@snap --format json | python -mjson.tool | sed 's/,$/, /'
167 {
168 "block_name_prefix": "rbd_data.*", (glob)
169 "features": [
170 "layering",
171 "exclusive-lock",
172 "object-map",
173 "fast-diff",
174 "deep-flatten"
175 ],
176 "flags": [],
177 "format": 2,
178 "name": "bar",
179 "object_size": 4194304,
180 "objects": 128,
181 "order": 22,
182 "protected": "true",
183 "size": 536870912
184 }
185 $ rbd info bar@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
186 <image>
187 <name>bar</name>
188 <size>536870912</size>
189 <objects>128</objects>
190 <order>22</order>
191 <object_size>4194304</object_size>
192 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
193 <format>2</format>
194 <features>
195 <feature>layering</feature>
196 <feature>exclusive-lock</feature>
197 <feature>object-map</feature>
198 <feature>fast-diff</feature>
199 <feature>deep-flatten</feature>
200 </features>
201 <flags></flags>
202 <protected>true</protected>
203 </image>
204 $ rbd info bar@snap2
205 rbd image 'bar':
206 \tsize 1024 MB in 256 objects (esc)
207 \torder 22 (4096 kB objects) (esc)
208 [^^]+ (re)
209 \tformat: 2 (esc)
210 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
211 \tflags: (esc)
212 \tprotected: False (esc)
213 $ rbd info bar@snap2 --format json | python -mjson.tool | sed 's/,$/, /'
214 {
215 "block_name_prefix": "rbd_data.*", (glob)
216 "features": [
217 "layering",
218 "exclusive-lock",
219 "object-map",
220 "fast-diff",
221 "deep-flatten"
222 ],
223 "flags": [],
224 "format": 2,
225 "name": "bar",
226 "object_size": 4194304,
227 "objects": 256,
228 "order": 22,
229 "protected": "false",
230 "size": 1073741824
231 }
232 $ rbd info bar@snap2 --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
233 <image>
234 <name>bar</name>
235 <size>1073741824</size>
236 <objects>256</objects>
237 <order>22</order>
238 <object_size>4194304</object_size>
239 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
240 <format>2</format>
241 <features>
242 <feature>layering</feature>
243 <feature>exclusive-lock</feature>
244 <feature>object-map</feature>
245 <feature>fast-diff</feature>
246 <feature>deep-flatten</feature>
247 </features>
248 <flags></flags>
249 <protected>false</protected>
250 </image>
251 $ rbd info baz
252 rbd image 'baz':
253 \tsize 2048 MB in 512 objects (esc)
254 \torder 22 (4096 kB objects) (esc)
255 [^^]+ (re)
256 \tformat: 2 (esc)
257 \tfeatures: layering (esc)
258 \tflags: (esc)
259 $ rbd info baz --format json | python -mjson.tool | sed 's/,$/, /'
260 {
261 "block_name_prefix": "rbd_data.*", (glob)
262 "features": [
263 "layering"
264 ],
265 "flags": [],
266 "format": 2,
267 "name": "baz",
268 "object_size": 4194304,
269 "objects": 512,
270 "order": 22,
271 "size": 2147483648
272 }
273 $ rbd info baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
274 <image>
275 <name>baz</name>
276 <size>2147483648</size>
277 <objects>512</objects>
278 <order>22</order>
279 <object_size>4194304</object_size>
280 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
281 <format>2</format>
282 <features>
283 <feature>layering</feature>
284 </features>
285 <flags></flags>
286 </image>
287 $ rbd info quux
288 rbd image 'quux':
289 \tsize 1024 kB in 1 objects (esc)
290 \torder 22 (4096 kB objects) (esc)
291 [^^]+ (re)
292 \tformat: 1 (esc)
293 $ rbd info quux --format json | python -mjson.tool | sed 's/,$/, /'
294 {
295 "block_name_prefix": "rb.0.*", (glob)
296 "format": 1,
297 "name": "quux",
298 "object_size": 4194304,
299 "objects": 1,
300 "order": 22,
301 "size": 1048576
302 }
303 $ rbd info quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
304 <image>
305 <name>quux</name>
306 <size>1048576</size>
307 <objects>1</objects>
308 <order>22</order>
309 <object_size>4194304</object_size>
310 <block_name_prefix>rb.0.*</block_name_prefix> (glob)
311 <format>1</format>
312 </image>
313 $ rbd info rbd_other/child
314 rbd image 'child':
315 \tsize 512 MB in 128 objects (esc)
316 \torder 22 (4096 kB objects) (esc)
317 [^^]+ (re)
318 \tformat: 2 (esc)
319 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
320 \tflags: (esc)
321 $ rbd info rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
322 {
323 "block_name_prefix": "rbd_data.*", (glob)
324 "features": [
325 "layering",
326 "exclusive-lock",
327 "object-map",
328 "fast-diff"
329 ],
330 "flags": [],
331 "format": 2,
332 "name": "child",
333 "object_size": 4194304,
334 "objects": 128,
335 "order": 22,
336 "size": 536870912
337 }
338 $ rbd info rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
339 <image>
340 <name>child</name>
341 <size>536870912</size>
342 <objects>128</objects>
343 <order>22</order>
344 <object_size>4194304</object_size>
345 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
346 <format>2</format>
347 <features>
348 <feature>layering</feature>
349 <feature>exclusive-lock</feature>
350 <feature>object-map</feature>
351 <feature>fast-diff</feature>
352 </features>
353 <flags></flags>
354 </image>
355 $ rbd info rbd_other/child@snap
356 rbd image 'child':
357 \tsize 512 MB in 128 objects (esc)
358 \torder 22 (4096 kB objects) (esc)
359 [^^]+ (re)
360 \tformat: 2 (esc)
361 \tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
362 \tflags: (esc)
363 \tprotected: False (esc)
364 \tparent: rbd/bar@snap (esc)
365 \toverlap: 512 MB (esc)
366 $ rbd info rbd_other/child@snap --format json | python -mjson.tool | sed 's/,$/, /'
367 {
368 "block_name_prefix": "rbd_data.*", (glob)
369 "features": [
370 "layering",
371 "exclusive-lock",
372 "object-map",
373 "fast-diff"
374 ],
375 "flags": [],
376 "format": 2,
377 "name": "child",
378 "object_size": 4194304,
379 "objects": 128,
380 "order": 22,
381 "parent": {
382 "image": "bar",
383 "overlap": 536870912,
384 "pool": "rbd",
385 "snapshot": "snap"
386 },
387 "protected": "false",
388 "size": 536870912
389 }
390 $ rbd info rbd_other/child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
391 <image>
392 <name>child</name>
393 <size>536870912</size>
394 <objects>128</objects>
395 <order>22</order>
396 <object_size>4194304</object_size>
397 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
398 <format>2</format>
399 <features>
400 <feature>layering</feature>
401 <feature>exclusive-lock</feature>
402 <feature>object-map</feature>
403 <feature>fast-diff</feature>
404 </features>
405 <flags></flags>
406 <protected>false</protected>
407 <parent>
408 <pool>rbd</pool>
409 <image>bar</image>
410 <snapshot>snap</snapshot>
411 <overlap>536870912</overlap>
412 </parent>
413 </image>
414 $ rbd info rbd_other/deep-flatten-child
415 rbd image 'deep-flatten-child':
416 \tsize 512 MB in 128 objects (esc)
417 \torder 22 (4096 kB objects) (esc)
418 [^^]+ (re)
419 \tformat: 2 (esc)
420 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
421 \tflags: (esc)
422 $ rbd info rbd_other/deep-flatten-child --format json | python -mjson.tool | sed 's/,$/, /'
423 {
424 "block_name_prefix": "rbd_data.*", (glob)
425 "features": [
426 "layering",
427 "exclusive-lock",
428 "object-map",
429 "fast-diff",
430 "deep-flatten"
431 ],
432 "flags": [],
433 "format": 2,
434 "name": "deep-flatten-child",
435 "object_size": 4194304,
436 "objects": 128,
437 "order": 22,
438 "size": 536870912
439 }
440 $ rbd info rbd_other/deep-flatten-child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
441 <image>
442 <name>deep-flatten-child</name>
443 <size>536870912</size>
444 <objects>128</objects>
445 <order>22</order>
446 <object_size>4194304</object_size>
447 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
448 <format>2</format>
449 <features>
450 <feature>layering</feature>
451 <feature>exclusive-lock</feature>
452 <feature>object-map</feature>
453 <feature>fast-diff</feature>
454 <feature>deep-flatten</feature>
455 </features>
456 <flags></flags>
457 </image>
458 $ rbd info rbd_other/deep-flatten-child@snap
459 rbd image 'deep-flatten-child':
460 \tsize 512 MB in 128 objects (esc)
461 \torder 22 (4096 kB objects) (esc)
462 [^^]+ (re)
463 \tformat: 2 (esc)
464 \tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
465 \tflags: (esc)
466 \tprotected: False (esc)
467 $ rbd info rbd_other/deep-flatten-child@snap --format json | python -mjson.tool | sed 's/,$/, /'
468 {
469 "block_name_prefix": "rbd_data.*", (glob)
470 "features": [
471 "layering",
472 "exclusive-lock",
473 "object-map",
474 "fast-diff",
475 "deep-flatten"
476 ],
477 "flags": [],
478 "format": 2,
479 "name": "deep-flatten-child",
480 "object_size": 4194304,
481 "objects": 128,
482 "order": 22,
483 "protected": "false",
484 "size": 536870912
485 }
486 $ rbd info rbd_other/deep-flatten-child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
487 <image>
488 <name>deep-flatten-child</name>
489 <size>536870912</size>
490 <objects>128</objects>
491 <order>22</order>
492 <object_size>4194304</object_size>
493 <block_name_prefix>rbd_data.*</block_name_prefix> (glob)
494 <format>2</format>
495 <features>
496 <feature>layering</feature>
497 <feature>exclusive-lock</feature>
498 <feature>object-map</feature>
499 <feature>fast-diff</feature>
500 <feature>deep-flatten</feature>
501 </features>
502 <flags></flags>
503 <protected>false</protected>
504 </image>
505 $ rbd list
506 foo
507 quux
508 bar
509 baz
510 quuy
511 $ rbd list --format json | python -mjson.tool | sed 's/,$/, /'
512 [
513 "foo",
514 "quux",
515 "bar",
516 "baz",
517 "quuy"
518 ]
519 $ rbd list --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
520 <images>
521 <name>foo</name>
522 <name>quux</name>
523 <name>bar</name>
524 <name>baz</name>
525 <name>quuy</name>
526 </images>
527 $ rbd list -l
528 NAME SIZE PARENT FMT PROT LOCK
529 foo 1024M 1
530 foo@snap 1024M 1
531 quux 1024k 1 excl
532 bar 1024M 2
533 bar@snap 512M 2 yes
534 bar@snap2 1024M 2
535 baz 2048M 2 shr
536 quuy 2048M 2
537 $ rbd list -l --format json | python -mjson.tool | sed 's/,$/, /'
538 [
539 {
540 "format": 1,
541 "image": "foo",
542 "size": 1073741824
543 },
544 {
545 "format": 1,
546 "image": "foo",
547 "protected": "false",
548 "size": 1073741824,
549 "snapshot": "snap"
550 },
551 {
552 "format": 1,
553 "image": "quux",
554 "lock_type": "exclusive",
555 "size": 1048576
556 },
557 {
558 "format": 2,
559 "image": "bar",
560 "size": 1073741824
561 },
562 {
563 "format": 2,
564 "image": "bar",
565 "protected": "true",
566 "size": 536870912,
567 "snapshot": "snap"
568 },
569 {
570 "format": 2,
571 "image": "bar",
572 "protected": "false",
573 "size": 1073741824,
574 "snapshot": "snap2"
575 },
576 {
577 "format": 2,
578 "image": "baz",
579 "lock_type": "shared",
580 "size": 2147483648
581 },
582 {
583 "format": 2,
584 "image": "quuy",
585 "size": 2147483648
586 }
587 ]
588 $ rbd list -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
589 <images>
590 <image>
591 <image>foo</image>
592 <size>1073741824</size>
593 <format>1</format>
594 </image>
595 <snapshot>
596 <image>foo</image>
597 <snapshot>snap</snapshot>
598 <size>1073741824</size>
599 <format>1</format>
600 <protected>false</protected>
601 </snapshot>
602 <image>
603 <image>quux</image>
604 <size>1048576</size>
605 <format>1</format>
606 <lock_type>exclusive</lock_type>
607 </image>
608 <image>
609 <image>bar</image>
610 <size>1073741824</size>
611 <format>2</format>
612 </image>
613 <snapshot>
614 <image>bar</image>
615 <snapshot>snap</snapshot>
616 <size>536870912</size>
617 <format>2</format>
618 <protected>true</protected>
619 </snapshot>
620 <snapshot>
621 <image>bar</image>
622 <snapshot>snap2</snapshot>
623 <size>1073741824</size>
624 <format>2</format>
625 <protected>false</protected>
626 </snapshot>
627 <image>
628 <image>baz</image>
629 <size>2147483648</size>
630 <format>2</format>
631 <lock_type>shared</lock_type>
632 </image>
633 <image>
634 <image>quuy</image>
635 <size>2147483648</size>
636 <format>2</format>
637 </image>
638 </images>
639 $ rbd list rbd_other
640 child
641 deep-flatten-child
642 $ rbd list rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
643 [
644 "child",
645 "deep-flatten-child"
646 ]
647 $ rbd list rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
648 <images>
649 <name>child</name>
650 <name>deep-flatten-child</name>
651 </images>
652 $ rbd list rbd_other -l
653 NAME SIZE PARENT FMT PROT LOCK
654 child 512M 2
655 child@snap 512M rbd/bar@snap 2
656 deep-flatten-child 512M 2
657 deep-flatten-child@snap 512M 2
658 $ rbd list rbd_other -l --format json | python -mjson.tool | sed 's/,$/, /'
659 [
660 {
661 "format": 2,
662 "image": "child",
663 "size": 536870912
664 },
665 {
666 "format": 2,
667 "image": "child",
668 "parent": {
669 "image": "bar",
670 "pool": "rbd",
671 "snapshot": "snap"
672 },
673 "protected": "false",
674 "size": 536870912,
675 "snapshot": "snap"
676 },
677 {
678 "format": 2,
679 "image": "deep-flatten-child",
680 "size": 536870912
681 },
682 {
683 "format": 2,
684 "image": "deep-flatten-child",
685 "protected": "false",
686 "size": 536870912,
687 "snapshot": "snap"
688 }
689 ]
690 $ rbd list rbd_other -l --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
691 <images>
692 <image>
693 <image>child</image>
694 <size>536870912</size>
695 <format>2</format>
696 </image>
697 <snapshot>
698 <image>child</image>
699 <snapshot>snap</snapshot>
700 <size>536870912</size>
701 <parent>
702 <pool>rbd</pool>
703 <image>bar</image>
704 <snapshot>snap</snapshot>
705 </parent>
706 <format>2</format>
707 <protected>false</protected>
708 </snapshot>
709 <image>
710 <image>deep-flatten-child</image>
711 <size>536870912</size>
712 <format>2</format>
713 </image>
714 <snapshot>
715 <image>deep-flatten-child</image>
716 <snapshot>snap</snapshot>
717 <size>536870912</size>
718 <format>2</format>
719 <protected>false</protected>
720 </snapshot>
721 </images>
722 $ rbd lock list foo
723 $ rbd lock list foo --format json | python -mjson.tool | sed 's/,$/, /'
724 {}
725 $ rbd lock list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
726 <locks></locks>
727 $ rbd lock list quux
728 There is 1 exclusive lock on this image.
729 Locker*ID*Address* (glob)
730 client.* id * (glob)
731 $ rbd lock list quux --format json | python -mjson.tool | sed 's/,$/, /'
732 {
733 "id": {
734 "address": "*", (glob)
735 "locker": "client.*" (glob)
736 }
737 }
738 $ rbd lock list quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
739 <locks>
740 <id>
741 <locker>client.*</locker> (glob)
742 <address>*</address> (glob)
743 </id>
744 </locks>
745 $ rbd lock list baz
746 There are 3 shared locks on this image.
747 Lock tag: tag
748 Locker*ID*Address* (glob)
749 client.*id[123].* (re)
750 client.*id[123].* (re)
751 client.*id[123].* (re)
752 $ rbd lock list baz --format json | python -mjson.tool | sed 's/,$/, /'
753 {
754 "id1": {
755 "address": "*", (glob)
756 "locker": "client.*" (glob)
757 },
758 "id2": {
759 "address": "*", (glob)
760 "locker": "client.*" (glob)
761 },
762 "id3": {
763 "address": "*", (glob)
764 "locker": "client.*" (glob)
765 }
766 }
767 $ rbd lock list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
768 <locks>
769 <id*> (glob)
770 <locker>client.*</locker> (glob)
771 <address>*</address> (glob)
772 </id*> (glob)
773 <id*> (glob)
774 <locker>client.*</locker> (glob)
775 <address>*</address> (glob)
776 </id*> (glob)
777 <id*> (glob)
778 <locker>client.*</locker> (glob)
779 <address>*</address> (glob)
780 </id*> (glob)
781 </locks>
782 $ rbd snap list foo
783 SNAPID NAME SIZE TIMESTAMP
784 *snap*1024*MB* (glob)
785 $ rbd snap list foo --format json | python -mjson.tool | sed 's/,$/, /'
786 [
787 {
788 "id": *, (glob)
789 "name": "snap",
790 "size": 1073741824,
791 "timestamp": ""
792 }
793 ]
794 $ rbd snap list foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
795 <snapshots>
796 <snapshot>
797 <id>*</id> (glob)
798 <name>snap</name>
799 <size>1073741824</size>
800 <timestamp></timestamp>
801 </snapshot>
802 </snapshots>
803 $ rbd snap list bar
804 SNAPID NAME SIZE TIMESTAMP
805 *snap*512*MB* (glob)
806 *snap2*1024*MB* (glob)
807 $ rbd snap list bar --format json | python -mjson.tool | sed 's/,$/, /'
808 [
809 {
810 "id": *, (glob)
811 "name": "snap",
812 "size": 536870912,
813 "timestamp": * (glob)
814 },
815 {
816 "id": *, (glob)
817 "name": "snap2",
818 "size": 1073741824,
819 "timestamp": * (glob)
820 }
821 ]
822 $ rbd snap list bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
823 <snapshots>
824 <snapshot>
825 <id>*</id> (glob)
826 <name>snap</name>
827 <size>536870912</size>
828 <timestamp>*</timestamp> (glob)
829 </snapshot>
830 <snapshot>
831 <id>*</id> (glob)
832 <name>snap2</name>
833 <size>1073741824</size>
834 <timestamp>*</timestamp> (glob)
835 </snapshot>
836 </snapshots>
837 $ rbd snap list baz
838 $ rbd snap list baz --format json | python -mjson.tool | sed 's/,$/, /'
839 []
840 $ rbd snap list baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
841 <snapshots></snapshots>
842 $ rbd snap list rbd_other/child
843 SNAPID NAME SIZE TIMESTAMP
844 *snap*512*MB* (glob)
845 $ rbd snap list rbd_other/child --format json | python -mjson.tool | sed 's/,$/, /'
846 [
847 {
848 "id": *, (glob)
849 "name": "snap",
850 "size": 536870912,
851 "timestamp": * (glob)
852 }
853 ]
854 $ rbd snap list rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
855 <snapshots>
856 <snapshot>
857 <id>*</id> (glob)
858 <name>snap</name>
859 <size>536870912</size>
860 <timestamp>*</timestamp> (glob)
861 </snapshot>
862 </snapshots>
863 $ rbd disk-usage --pool rbd_other 2>/dev/null
864 NAME PROVISIONED USED
865 child@snap 512M 0
866 child 512M 4096k
867 deep-flatten-child@snap 512M 0
868 deep-flatten-child 512M 0
869 <TOTAL> 1024M 4096k
870 $ rbd disk-usage --pool rbd_other --format json | python -mjson.tool | sed 's/,$/, /'
871 {
872 "images": [
873 {
874 "name": "child",
875 "provisioned_size": 536870912,
876 "snapshot": "snap",
877 "used_size": 0
878 },
879 {
880 "name": "child",
881 "provisioned_size": 536870912,
882 "used_size": 4194304
883 },
884 {
885 "name": "deep-flatten-child",
886 "provisioned_size": 536870912,
887 "snapshot": "snap",
888 "used_size": 0
889 },
890 {
891 "name": "deep-flatten-child",
892 "provisioned_size": 536870912,
893 "used_size": 0
894 }
895 ],
896 "total_provisioned_size": 1073741824,
897 "total_used_size": 4194304
898 }
899 $ rbd disk-usage --pool rbd_other --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
900 <stats>
901 <images>
902 <image>
903 <name>child</name>
904 <snapshot>snap</snapshot>
905 <provisioned_size>536870912</provisioned_size>
906 <used_size>0</used_size>
907 </image>
908 <image>
909 <name>child</name>
910 <provisioned_size>536870912</provisioned_size>
911 <used_size>4194304</used_size>
912 </image>
913 <image>
914 <name>deep-flatten-child</name>
915 <snapshot>snap</snapshot>
916 <provisioned_size>536870912</provisioned_size>
917 <used_size>0</used_size>
918 </image>
919 <image>
920 <name>deep-flatten-child</name>
921 <provisioned_size>536870912</provisioned_size>
922 <used_size>0</used_size>
923 </image>
924 </images>
925 <total_provisioned_size>1073741824</total_provisioned_size>
926 <total_used_size>4194304</total_used_size>
927 </stats>
928
929# cleanup
930 $ rbd snap remove --no-progress rbd_other/deep-flatten-child@snap
931 $ rbd snap remove --no-progress rbd_other/child@snap
932 $ rbd snap unprotect bar@snap
933 $ rbd snap purge bar 2> /dev/null
934 $ rbd snap purge foo 2> /dev/null
935 $ rbd rm rbd_other/deep-flatten-child 2> /dev/null
936 $ rbd rm rbd_other/child 2> /dev/null
937 $ rbd rm foo 2> /dev/null
938 $ rbd rm bar 2> /dev/null
939 $ rbd rm quux 2> /dev/null
940 $ rbd rm quuy 2> /dev/null
941 $ rbd rm baz 2> /dev/null
942 $ ceph osd pool delete rbd_other rbd_other --yes-i-really-really-mean-it
943 pool 'rbd_other' removed