Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / cli-integration / rbd / unmap.t
1
2 Setup
3 =====
4
5   $ rbd create --size 1 img
6   $ rbd snap create img@snap
7   $ rbd create --size 1 anotherimg
8   $ ceph osd pool create custom 8 >/dev/null 2>&1
9   $ rbd pool init custom
10   $ rbd create --size 1 custom/img
11   $ rbd snap create custom/img@snap
12   $ rbd snap create custom/img@anothersnap
13
14 Spell out device instead of using $DEV - sfdisk is not a joke.
15
16   $ DEV=$(sudo rbd map img)
17   $ cat <<EOF | sudo sfdisk /dev/rbd[01] >/dev/null 2>&1
18   > unit: sectors
19   > /dev/rbd0p1 : start=        2, size=        2, Id=83
20   > /dev/rbd0p2 : start=        5, size=     2043, Id= 5
21   > /dev/rbd0p3 : start=        0, size=        0, Id= 0
22   > /dev/rbd0p4 : start=        0, size=        0, Id= 0
23   > /dev/rbd0p5 : start=        7, size=        2, Id=83
24   > EOF
25
26
27 Unmap by device
28 ===============
29
30 Unmap by device (img is already mapped):
31
32   $ rbd showmapped
33   id pool image snap device    
34   ?  rbd  img   -    /dev/rbd?  (glob)
35   $ sudo rbd unmap $DEV
36   $ rbd showmapped
37
38 Unmap by device partition:
39
40   $ DEV=$(sudo rbd map img)
41   $ rbd showmapped
42   id pool image snap device    
43   ?  rbd  img   -    /dev/rbd?  (glob)
44   $ sudo rbd unmap ${DEV}p1
45   $ rbd showmapped
46
47   $ DEV=$(sudo rbd map img)
48   $ rbd showmapped
49   id pool image snap device    
50   ?  rbd  img   -    /dev/rbd?  (glob)
51   $ sudo rbd unmap ${DEV}p5
52   $ rbd showmapped
53
54 Not a block device - random junk prefixed with /dev/ (so it's not
55 interpreted as a spec):
56
57   $ sudo rbd unmap /dev/foobar
58   rbd: '/dev/foobar' is not a block device
59   rbd: unmap failed: (22) Invalid argument
60   [22]
61
62 Not a block device - device that's just been unmapped:
63
64   $ DEV=$(sudo rbd map img)
65   $ sudo rbd unmap $DEV
66   $ sudo rbd unmap $DEV
67   rbd: '/dev/rbd?' is not a block device (glob)
68   rbd: unmap failed: (22) Invalid argument
69   [22]
70
71 A block device, but not rbd:
72
73   $ sudo rbd unmap /dev/[sv]da
74   rbd: '/dev/?da' is not an rbd device (glob)
75   rbd: unmap failed: (22) Invalid argument
76   [22]
77
78
79 Unmap by spec
80 =============
81
82 img:
83
84   $ sudo rbd map img
85   /dev/rbd? (glob)
86   $ rbd showmapped
87   id pool image snap device    
88   ?  rbd  img   -    /dev/rbd?  (glob)
89   $ sudo rbd unmap img
90   $ rbd showmapped
91
92   $ sudo rbd map img
93   /dev/rbd? (glob)
94   $ rbd showmapped
95   id pool image snap device    
96   ?  rbd  img   -    /dev/rbd?  (glob)
97   $ sudo rbd --image img unmap
98   $ rbd showmapped
99
100 img@snap:
101
102   $ sudo rbd map img@snap
103   /dev/rbd? (glob)
104   $ rbd showmapped
105   id pool image snap device    
106   ?  rbd  img   snap /dev/rbd?  (glob)
107   $ sudo rbd unmap img@snap
108   $ rbd showmapped
109
110   $ sudo rbd map img@snap
111   /dev/rbd? (glob)
112   $ rbd showmapped
113   id pool image snap device    
114   ?  rbd  img   snap /dev/rbd?  (glob)
115   $ sudo rbd --snap snap unmap img
116   $ rbd showmapped
117
118   $ sudo rbd map img@snap
119   /dev/rbd? (glob)
120   $ rbd showmapped
121   id pool image snap device    
122   ?  rbd  img   snap /dev/rbd?  (glob)
123   $ sudo rbd --image img --snap snap unmap
124   $ rbd showmapped
125
126 pool/img@snap, default pool:
127
128   $ sudo rbd map rbd/img@snap
129   /dev/rbd? (glob)
130   $ rbd showmapped
131   id pool image snap device    
132   ?  rbd  img   snap /dev/rbd?  (glob)
133   $ sudo rbd unmap rbd/img@snap
134   $ rbd showmapped
135
136   $ sudo rbd map rbd/img@snap
137   /dev/rbd? (glob)
138   $ rbd showmapped
139   id pool image snap device    
140   ?  rbd  img   snap /dev/rbd?  (glob)
141   $ sudo rbd --pool rbd unmap img@snap
142   $ rbd showmapped
143
144   $ sudo rbd map rbd/img@snap
145   /dev/rbd? (glob)
146   $ rbd showmapped
147   id pool image snap device    
148   ?  rbd  img   snap /dev/rbd?  (glob)
149   $ sudo rbd --pool rbd --snap snap unmap img
150   $ rbd showmapped
151
152   $ sudo rbd map rbd/img@snap
153   /dev/rbd? (glob)
154   $ rbd showmapped
155   id pool image snap device    
156   ?  rbd  img   snap /dev/rbd?  (glob)
157   $ sudo rbd --pool rbd --image img --snap snap unmap
158   $ rbd showmapped
159
160 pool/img@snap, custom pool:
161
162   $ sudo rbd map custom/img@snap
163   /dev/rbd? (glob)
164   $ rbd showmapped
165   id pool   image snap device    
166   ?  custom img   snap /dev/rbd?  (glob)
167   $ sudo rbd unmap custom/img@snap
168   $ rbd showmapped
169
170   $ sudo rbd map custom/img@snap
171   /dev/rbd? (glob)
172   $ rbd showmapped
173   id pool   image snap device    
174   ?  custom img   snap /dev/rbd?  (glob)
175   $ sudo rbd --pool custom unmap img@snap
176   $ rbd showmapped
177
178   $ sudo rbd map custom/img@snap
179   /dev/rbd? (glob)
180   $ rbd showmapped
181   id pool   image snap device    
182   ?  custom img   snap /dev/rbd?  (glob)
183   $ sudo rbd --pool custom --snap snap unmap img
184   $ rbd showmapped
185
186   $ sudo rbd map custom/img@snap
187   /dev/rbd? (glob)
188   $ rbd showmapped
189   id pool   image snap device    
190   ?  custom img   snap /dev/rbd?  (glob)
191   $ sudo rbd --pool custom --image img --snap snap unmap
192   $ rbd showmapped
193
194 Not a mapped spec - random junk (which gets interpreted as a spec):
195
196   $ sudo rbd unmap foobar
197   rbd: rbd/foobar@-: not a mapped image or snapshot
198   rbd: unmap failed: (22) Invalid argument
199   [22]
200
201   $ sudo rbd --image foobar unmap
202   rbd: rbd/foobar@-: not a mapped image or snapshot
203   rbd: unmap failed: (22) Invalid argument
204   [22]
205
206 Not a mapped spec - spec that's just been unmapped:
207
208   $ sudo rbd map img
209   /dev/rbd? (glob)
210   $ sudo rbd unmap img
211   $ sudo rbd unmap img
212   rbd: rbd/img@-: not a mapped image or snapshot
213   rbd: unmap failed: (22) Invalid argument
214   [22]
215
216   $ sudo rbd map img@snap
217   /dev/rbd? (glob)
218   $ sudo rbd unmap img@snap
219   $ sudo rbd unmap img@snap
220   rbd: rbd/img@snap: not a mapped image or snapshot
221   rbd: unmap failed: (22) Invalid argument
222   [22]
223
224 Need an arg:
225
226   $ sudo rbd unmap
227   rbd: unmap requires either image name or device path
228   [22]
229
230
231 Two images
232 ==========
233
234 Unmap img first:
235
236   $ sudo rbd map img
237   /dev/rbd? (glob)
238   $ sudo rbd map anotherimg
239   /dev/rbd? (glob)
240   $ rbd showmapped
241   id pool image      snap device    
242   ?  rbd  img        -    /dev/rbd?  (glob)
243   ?  rbd  anotherimg -    /dev/rbd?  (glob)
244   $ sudo rbd unmap img
245   $ rbd showmapped
246   id pool image      snap device    
247   ?  rbd  anotherimg -    /dev/rbd?  (glob)
248   $ sudo rbd unmap anotherimg
249   $ rbd showmapped
250
251 Unmap anotherimg first:
252
253   $ sudo rbd map img
254   /dev/rbd? (glob)
255   $ sudo rbd map anotherimg
256   /dev/rbd? (glob)
257   $ rbd showmapped
258   id pool image      snap device    
259   ?  rbd  img        -    /dev/rbd?  (glob)
260   ?  rbd  anotherimg -    /dev/rbd?  (glob)
261   $ sudo rbd unmap anotherimg
262   $ rbd showmapped
263   id pool image snap device    
264   ?  rbd  img   -    /dev/rbd?  (glob)
265   $ sudo rbd unmap img
266   $ rbd showmapped
267
268
269 Image and its snap
270 ==================
271
272 Unmap the image first:
273
274   $ sudo rbd map img
275   /dev/rbd? (glob)
276   $ sudo rbd map img@snap
277   /dev/rbd? (glob)
278   $ rbd showmapped
279   id pool image snap device    
280   ?  rbd  img   -    /dev/rbd?  (glob)
281   ?  rbd  img   snap /dev/rbd?  (glob)
282   $ sudo rbd unmap img
283   $ rbd showmapped
284   id pool image snap device    
285   ?  rbd  img   snap /dev/rbd?  (glob)
286   $ sudo rbd unmap img@snap
287   $ rbd showmapped
288
289 Unmap the snap first:
290
291   $ sudo rbd map img
292   /dev/rbd? (glob)
293   $ sudo rbd map img@snap
294   /dev/rbd? (glob)
295   $ rbd showmapped
296   id pool image snap device    
297   ?  rbd  img   -    /dev/rbd?  (glob)
298   ?  rbd  img   snap /dev/rbd?  (glob)
299   $ sudo rbd unmap img@snap
300   $ rbd showmapped
301   id pool image snap device    
302   ?  rbd  img   -    /dev/rbd?  (glob)
303   $ sudo rbd unmap img
304   $ rbd showmapped
305
306
307 Two snaps of the same image
308 ===========================
309
310 Unmap snap first:
311
312   $ sudo rbd map custom/img@snap
313   /dev/rbd? (glob)
314   $ sudo rbd map custom/img@anothersnap
315   /dev/rbd? (glob)
316   $ rbd showmapped
317   id pool   image snap        device    
318   ?  custom img   snap        /dev/rbd?  (glob)
319   ?  custom img   anothersnap /dev/rbd?  (glob)
320   $ sudo rbd unmap custom/img@snap
321   $ rbd showmapped
322   id pool   image snap        device    
323   ?  custom img   anothersnap /dev/rbd?  (glob)
324   $ sudo rbd unmap custom/img@anothersnap
325   $ rbd showmapped
326
327 Unmap anothersnap first:
328
329   $ sudo rbd map custom/img@snap
330   /dev/rbd? (glob)
331   $ sudo rbd map custom/img@anothersnap
332   /dev/rbd? (glob)
333   $ rbd showmapped
334   id pool   image snap        device    
335   ?  custom img   snap        /dev/rbd?  (glob)
336   ?  custom img   anothersnap /dev/rbd?  (glob)
337   $ sudo rbd unmap custom/img@anothersnap
338   $ rbd showmapped
339   id pool   image snap device    
340   ?  custom img   snap /dev/rbd?  (glob)
341   $ sudo rbd unmap custom/img@snap
342   $ rbd showmapped
343
344
345 Same img and snap in different pools
346 ====================================
347
348 img:
349
350   $ sudo rbd map img
351   /dev/rbd? (glob)
352   $ sudo rbd map custom/img
353   /dev/rbd? (glob)
354   $ rbd showmapped
355   id pool   image snap device    
356   ?  rbd    img   -    /dev/rbd?  (glob)
357   ?  custom img   -    /dev/rbd?  (glob)
358   $ sudo rbd unmap img
359   $ rbd showmapped
360   id pool   image snap device    
361   ?  custom img   -    /dev/rbd?  (glob)
362   $ sudo rbd unmap custom/img
363   $ rbd showmapped
364
365 img@snap:
366
367   $ sudo rbd map img@snap
368   /dev/rbd? (glob)
369   $ sudo rbd map custom/img@snap
370   /dev/rbd? (glob)
371   $ rbd showmapped
372   id pool   image snap device    
373   ?  rbd    img   snap /dev/rbd?  (glob)
374   ?  custom img   snap /dev/rbd?  (glob)
375   $ sudo rbd unmap custom/img@snap
376   $ rbd showmapped
377   id pool image snap device    
378   ?  rbd  img   snap /dev/rbd?  (glob)
379   $ sudo rbd unmap img@snap
380   $ rbd showmapped
381
382
383 Same spec mapped twice
384 ======================
385
386 img:
387
388   $ sudo rbd map img
389   /dev/rbd? (glob)
390   $ sudo rbd map img
391   /dev/rbd? (glob)
392   $ rbd showmapped
393   id pool image snap device    
394   ?  rbd  img   -    /dev/rbd?  (glob)
395   ?  rbd  img   -    /dev/rbd?  (glob)
396   $ sudo rbd unmap img
397   rbd: rbd/img@-: mapped more than once, unmapping /dev/rbd? only (glob)
398   $ rbd showmapped
399   id pool image snap device    
400   ?  rbd  img   -    /dev/rbd?  (glob)
401   $ sudo rbd unmap img
402   $ rbd showmapped
403
404 img@snap:
405
406   $ sudo rbd map img@snap
407   /dev/rbd? (glob)
408   $ sudo rbd map img@snap
409   /dev/rbd? (glob)
410   $ rbd showmapped
411   id pool image snap device    
412   ?  rbd  img   snap /dev/rbd?  (glob)
413   ?  rbd  img   snap /dev/rbd?  (glob)
414   $ sudo rbd unmap img@snap
415   rbd: rbd/img@snap: mapped more than once, unmapping /dev/rbd? only (glob)
416   $ rbd showmapped
417   id pool image snap device    
418   ?  rbd  img   snap /dev/rbd?  (glob)
419   $ sudo rbd unmap img@snap
420   $ rbd showmapped
421
422 pool/img@snap, default pool:
423
424   $ sudo rbd map rbd/img@snap
425   /dev/rbd? (glob)
426   $ sudo rbd map rbd/img@snap
427   /dev/rbd? (glob)
428   $ rbd showmapped
429   id pool image snap device    
430   ?  rbd  img   snap /dev/rbd?  (glob)
431   ?  rbd  img   snap /dev/rbd?  (glob)
432   $ sudo rbd unmap rbd/img@snap
433   rbd: rbd/img@snap: mapped more than once, unmapping /dev/rbd? only (glob)
434   $ rbd showmapped
435   id pool image snap device    
436   ?  rbd  img   snap /dev/rbd?  (glob)
437   $ sudo rbd unmap rbd/img@snap
438   $ rbd showmapped
439
440 pool/img@snap, custom pool:
441
442   $ sudo rbd map custom/img@snap
443   /dev/rbd? (glob)
444   $ sudo rbd map custom/img@snap
445   /dev/rbd? (glob)
446   $ rbd showmapped
447   id pool   image snap device    
448   ?  custom img   snap /dev/rbd?  (glob)
449   ?  custom img   snap /dev/rbd?  (glob)
450   $ sudo rbd unmap custom/img@snap
451   rbd: custom/img@snap: mapped more than once, unmapping /dev/rbd? only (glob)
452   $ rbd showmapped
453   id pool   image snap device    
454   ?  custom img   snap /dev/rbd?  (glob)
455   $ sudo rbd unmap custom/img@snap
456   $ rbd showmapped
457
458
459 Teardown
460 ========
461
462   $ ceph osd pool delete custom custom --yes-i-really-really-mean-it >/dev/null 2>&1
463   $ rbd snap purge anotherimg >/dev/null 2>&1
464   $ rbd rm anotherimg >/dev/null 2>&1
465   $ rbd snap purge img >/dev/null 2>&1
466   $ rbd rm img >/dev/null 2>&1
467