]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/regression/zfs/zpool/attach/option-f_inuse.t
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / regression / zfs / zpool / attach / option-f_inuse.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 dir=`dirname $0`
5 . ${dir}/../../misc.sh
6
7 echo "1..141"
8
9 disks_create 11
10 names_create 2
11
12 expect_ok ${ZPOOL} create ${name0} ${disk0}
13 expect_ok ${ZPOOL} export ${name0}
14 expect_ok ${ZPOOL} create ${name1} ${disk1}
15 exp=`(
16   echo "invalid vdev specification"
17   echo "use '-f' to override the following errors:"
18   echo "${fdisk0} is part of exported pool '${name0}'"
19 )`
20 expect "${exp}" ${ZPOOL} attach ${name1} ${disk1} ${disk0}
21 exp=`(
22   echo "  pool: ${name1}"
23   echo " state: ONLINE"
24   echo " scrub: none requested"
25   echo "config:"
26   echo "        NAME        STATE   READ WRITE CKSUM"
27   echo "        ${name1}    ONLINE     0     0     0"
28   echo "          ${disk1}  ONLINE     0     0     0"
29   echo "errors: No known data errors"
30 )`
31 expect "${exp}" ${ZPOOL} status ${name1}
32 expect_ok ${ZPOOL} attach -f ${name1} ${disk1} ${disk0}
33 wait_for_resilver ${name1}
34 exp=`(
35   echo "  pool: ${name1}"
36   echo " state: ONLINE"
37   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
38   echo "config:"
39   echo "        NAME          STATE   READ WRITE CKSUM"
40   echo "        ${name1}      ONLINE     0     0     0"
41   echo "          mirror      ONLINE     0     0     0"
42   echo "            ${disk1}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
43   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
44   echo "errors: No known data errors"
45 )`
46 expect "${exp}" ${ZPOOL} status ${name1}
47 expect_ok ${ZPOOL} destroy ${name1}
48
49 expect_ok ${ZPOOL} create ${name0} ${disk0}
50 expect_ok ${ZPOOL} export ${name0}
51 expect_ok ${ZPOOL} create ${name1} mirror ${disk1} ${disk2}
52 exp=`(
53   echo "invalid vdev specification"
54   echo "use '-f' to override the following errors:"
55   echo "${fdisk0} is part of exported pool '${name0}'"
56 )`
57 expect "${exp}" ${ZPOOL} attach ${name1} ${disk1} ${disk0}
58 exp=`(
59   echo "  pool: ${name1}"
60   echo " state: ONLINE"
61   echo " scrub: none requested"
62   echo "config:"
63   echo "        NAME          STATE   READ WRITE CKSUM"
64   echo "        ${name1}      ONLINE     0     0     0"
65   echo "          mirror      ONLINE     0     0     0"
66   echo "            ${disk1}  ONLINE     0     0     0"
67   echo "            ${disk2}  ONLINE     0     0     0"
68   echo "errors: No known data errors"
69 )`
70 expect "${exp}" ${ZPOOL} status ${name1}
71 expect_ok ${ZPOOL} attach -f ${name1} ${disk1} ${disk0}
72 wait_for_resilver ${name1}
73 exp=`(
74   echo "  pool: ${name1}"
75   echo " state: ONLINE"
76   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
77   echo "config:"
78   echo "        NAME          STATE   READ WRITE CKSUM"
79   echo "        ${name1}      ONLINE     0     0     0"
80   echo "          mirror      ONLINE     0     0     0"
81   echo "            ${disk1}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
82   echo "            ${disk2}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
83   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
84   echo "errors: No known data errors"
85 )`
86 expect "${exp}" ${ZPOOL} status ${name1}
87 expect_ok ${ZPOOL} destroy ${name1}
88
89 expect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0}
90 expect_ok ${ZPOOL} export ${name0}
91 expect_ok ${ZPOOL} create ${name1} ${disk3} log ${disk4}
92 exp=`(
93   echo "invalid vdev specification"
94   echo "use '-f' to override the following errors:"
95   echo "${fdisk0} is part of exported pool '${name0}'"
96 )`
97 expect "${exp}" ${ZPOOL} attach ${name1} ${disk4} ${disk0}
98 exp=`(
99   echo "  pool: ${name1}"
100   echo " state: ONLINE"
101   echo " scrub: none requested"
102   echo "config:"
103   echo "        NAME        STATE   READ WRITE CKSUM"
104   echo "        ${name1}    ONLINE     0     0     0"
105   echo "          ${disk3}  ONLINE     0     0     0"
106   echo "        logs        ONLINE     0     0     0"
107   echo "          ${disk4}  ONLINE     0     0     0"
108   echo "errors: No known data errors"
109 )`
110 expect "${exp}" ${ZPOOL} status ${name1}
111 expect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0}
112 wait_for_resilver ${name1}
113 exp=`(
114   echo "  pool: ${name1}"
115   echo " state: ONLINE"
116   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
117   echo "config:"
118   echo "        NAME          STATE   READ WRITE CKSUM"
119   echo "        ${name1}      ONLINE     0     0     0"
120   echo "          ${disk3}    ONLINE     0     0     0"
121   echo "        logs          ONLINE     0     0     0"
122   echo "          mirror      ONLINE     0     0     0"
123   echo "            ${disk4}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
124   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
125   echo "errors: No known data errors"
126 )`
127 expect "${exp}" ${ZPOOL} status ${name1}
128 expect_ok ${ZPOOL} destroy ${name1}
129 expect_ok ${ZPOOL} import ${name0}
130 expect_ok ${ZPOOL} destroy ${name0}
131
132 expect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0}
133 expect_ok ${ZPOOL} export ${name0}
134 expect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5}
135 exp=`(
136   echo "invalid vdev specification"
137   echo "use '-f' to override the following errors:"
138   echo "${fdisk0} is part of exported pool '${name0}'"
139 )`
140 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
141 exp=`(
142   echo "  pool: ${name1}"
143   echo " state: ONLINE"
144   echo " scrub: none requested"
145   echo "config:"
146   echo "        NAME          STATE   READ WRITE CKSUM"
147   echo "        ${name1}      ONLINE     0     0     0"
148   echo "          ${disk3}    ONLINE     0     0     0"
149   echo "        logs          ONLINE     0     0     0"
150   echo "          mirror      ONLINE     0     0     0"
151   echo "            ${disk4}  ONLINE     0     0     0"
152   echo "            ${disk5}  ONLINE     0     0     0"
153   echo "errors: No known data errors"
154 )`
155 expect "${exp}" ${ZPOOL} status ${name1}
156 expect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0}
157 wait_for_resilver ${name1}
158 exp=`(
159   echo "  pool: ${name1}"
160   echo " state: ONLINE"
161   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
162   echo "config:"
163   echo "        NAME          STATE   READ WRITE CKSUM"
164   echo "        ${name1}      ONLINE     0     0     0"
165   echo "          ${disk3}    ONLINE     0     0     0"
166   echo "        logs          ONLINE     0     0     0"
167   echo "          mirror      ONLINE     0     0     0"
168   echo "            ${disk4}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
169   echo "            ${disk5}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
170   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
171   echo "errors: No known data errors"
172 )`
173 expect "${exp}" ${ZPOOL} status ${name1}
174 expect_ok ${ZPOOL} destroy ${name1}
175 expect_ok ${ZPOOL} import ${name0}
176 expect_ok ${ZPOOL} destroy ${name0}
177
178 expect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0}
179 expect_ok ${ZPOOL} export ${name0}
180 expect_ok ${ZPOOL} create ${name1} ${disk2}
181 exp=`(
182   echo "invalid vdev specification"
183   echo "use '-f' to override the following errors:"
184   echo "${fdisk0} is part of exported pool '${name0}'"
185 )`
186 add_msg="# TODO It shouldn't be possible to use offlined cache vdevs."
187 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
188 exp=`(
189   echo "  pool: ${name1}"
190   echo " state: ONLINE"
191   echo " scrub: none requested"
192   echo "config:"
193   echo "        NAME        STATE   READ WRITE CKSUM"
194   echo "        ${name1}    ONLINE     0     0     0"
195   echo "          ${disk2}  ONLINE     0     0     0"
196   echo "errors: No known data errors"
197 )`
198 expect "${exp}" ${ZPOOL} status ${name1}
199 expect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
200 add_msg=""
201 wait_for_resilver ${name1}
202 exp=`(
203   echo "  pool: ${name1}"
204   echo " state: ONLINE"
205   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
206   echo "config:"
207   echo "        NAME          STATE   READ WRITE CKSUM"
208   echo "        ${name1}      ONLINE     0     0     0"
209   echo "          mirror      ONLINE     0     0     0"
210   echo "            ${disk2}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
211   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
212   echo "errors: No known data errors"
213 )`
214 expect "${exp}" ${ZPOOL} status ${name1}
215 expect_ok ${ZPOOL} destroy ${name1}
216 expect_ok ${ZPOOL} import ${name0}
217 expect_ok ${ZPOOL} destroy ${name0}
218
219 expect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
220 expect_ok ${ZPOOL} offline ${name0} ${disk0}
221 expect_ok ${ZPOOL} export ${name0}
222 expect_ok ${ZPOOL} create ${name1} ${disk2}
223 exp=`(
224   echo "invalid vdev specification"
225   echo "use '-f' to override the following errors:"
226   echo "${fdisk0} is part of potentially active pool '${name0}'"
227 )`
228 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
229 exp=`(
230   echo "  pool: ${name1}"
231   echo " state: ONLINE"
232   echo " scrub: none requested"
233   echo "config:"
234   echo "        NAME        STATE   READ WRITE CKSUM"
235   echo "        ${name1}    ONLINE     0     0     0"
236   echo "          ${disk2}  ONLINE     0     0     0"
237   echo "errors: No known data errors"
238 )`
239 expect "${exp}" ${ZPOOL} status ${name1}
240 expect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
241 wait_for_resilver ${name1}
242 exp=`(
243   echo "  pool: ${name1}"
244   echo " state: ONLINE"
245   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
246   echo "config:"
247   echo "        NAME          STATE   READ WRITE CKSUM"
248   echo "        ${name1}      ONLINE     0     0     0"
249   echo "          mirror      ONLINE     0     0     0"
250   echo "            ${disk2}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
251   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
252   echo "errors: No known data errors"
253 )`
254 expect "${exp}" ${ZPOOL} status ${name1}
255 expect_ok ${ZPOOL} destroy ${name1}
256 expect_ok ${ZPOOL} import ${name0}
257 expect_ok ${ZPOOL} destroy ${name0}
258
259 expect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
260 expect_ok ${ZPOOL} offline ${name0} ${disk0}
261 expect_ok ${ZPOOL} export ${name0}
262 expect_ok ${ZPOOL} create ${name1} mirror ${disk2} ${disk3}
263 exp=`(
264   echo "invalid vdev specification"
265   echo "use '-f' to override the following errors:"
266   echo "${fdisk0} is part of potentially active pool '${name0}'"
267 )`
268 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
269 exp=`(
270   echo "  pool: ${name1}"
271   echo " state: ONLINE"
272   echo " scrub: none requested"
273   echo "config:"
274   echo "        NAME          STATE   READ WRITE CKSUM"
275   echo "        ${name1}      ONLINE     0     0     0"
276   echo "          mirror      ONLINE     0     0     0"
277   echo "            ${disk2}  ONLINE     0     0     0"
278   echo "            ${disk3}  ONLINE     0     0     0"
279   echo "errors: No known data errors"
280 )`
281 expect "${exp}" ${ZPOOL} status ${name1}
282 expect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
283 wait_for_resilver ${name1}
284 exp=`(
285   echo "  pool: ${name1}"
286   echo " state: ONLINE"
287   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
288   echo "config:"
289   echo "        NAME          STATE   READ WRITE CKSUM"
290   echo "        ${name1}      ONLINE     0     0     0"
291   echo "          mirror      ONLINE     0     0     0"
292   echo "            ${disk2}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
293   echo "            ${disk3}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
294   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
295   echo "errors: No known data errors"
296 )`
297 expect "${exp}" ${ZPOOL} status ${name1}
298 expect_ok ${ZPOOL} destroy ${name1}
299 expect_ok ${ZPOOL} import ${name0}
300 expect_ok ${ZPOOL} destroy ${name0}
301
302 expect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0}
303 expect_ok ${ZPOOL} offline ${name0} ${disk0}
304 expect_ok ${ZPOOL} export ${name0}
305 expect_ok ${ZPOOL} create ${name1} ${disk3} log ${disk4}
306 exp=`(
307   echo "invalid vdev specification"
308   echo "use '-f' to override the following errors:"
309   echo "${fdisk0} is part of potentially active pool '${name0}'"
310 )`
311 expect "${exp}" ${ZPOOL} attach ${name1} ${disk4} ${disk0}
312 exp=`(
313   echo "  pool: ${name1}"
314   echo " state: ONLINE"
315   echo " scrub: none requested"
316   echo "config:"
317   echo "        NAME        STATE   READ WRITE CKSUM"
318   echo "        ${name1}    ONLINE     0     0     0"
319   echo "          ${disk3}  ONLINE     0     0     0"
320   echo "        logs        ONLINE     0     0     0"
321   echo "          ${disk4}  ONLINE     0     0     0"
322   echo "errors: No known data errors"
323 )`
324 expect "${exp}" ${ZPOOL} status ${name1}
325 expect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0}
326 wait_for_resilver ${name1}
327 exp=`(
328   echo "  pool: ${name1}"
329   echo " state: ONLINE"
330   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
331   echo "config:"
332   echo "        NAME          STATE   READ WRITE CKSUM"
333   echo "        ${name1}      ONLINE     0     0     0"
334   echo "          ${disk3}    ONLINE     0     0     0"
335   echo "        logs          ONLINE     0     0     0"
336   echo "          mirror      ONLINE     0     0     0"
337   echo "            ${disk4}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
338   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
339   echo "errors: No known data errors"
340 )`
341 expect "${exp}" ${ZPOOL} status ${name1}
342 expect_ok ${ZPOOL} destroy ${name1}
343 expect_ok ${ZPOOL} import ${name0}
344 expect_ok ${ZPOOL} destroy ${name0}
345
346 expect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0}
347 expect_ok ${ZPOOL} offline ${name0} ${disk0}
348 expect_ok ${ZPOOL} export ${name0}
349 expect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5}
350 exp=`(
351   echo "invalid vdev specification"
352   echo "use '-f' to override the following errors:"
353   echo "${fdisk0} is part of potentially active pool '${name0}'"
354 )`
355 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
356 exp=`(
357   echo "  pool: ${name1}"
358   echo " state: ONLINE"
359   echo " scrub: none requested"
360   echo "config:"
361   echo "        NAME          STATE   READ WRITE CKSUM"
362   echo "        ${name1}      ONLINE     0     0     0"
363   echo "          ${disk3}    ONLINE     0     0     0"
364   echo "        logs          ONLINE     0     0     0"
365   echo "          mirror      ONLINE     0     0     0"
366   echo "            ${disk4}  ONLINE     0     0     0"
367   echo "            ${disk5}  ONLINE     0     0     0"
368   echo "errors: No known data errors"
369 )`
370 expect "${exp}" ${ZPOOL} status ${name1}
371 expect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0}
372 wait_for_resilver ${name1}
373 exp=`(
374   echo "  pool: ${name1}"
375   echo " state: ONLINE"
376   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
377   echo "config:"
378   echo "        NAME          STATE   READ WRITE CKSUM"
379   echo "        ${name1}      ONLINE     0     0     0"
380   echo "          ${disk3}    ONLINE     0     0     0"
381   echo "        logs          ONLINE     0     0     0"
382   echo "          mirror      ONLINE     0     0     0"
383   echo "            ${disk4}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
384   echo "            ${disk5}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
385   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
386   echo "errors: No known data errors"
387 )`
388 expect "${exp}" ${ZPOOL} status ${name1}
389 expect_ok ${ZPOOL} destroy ${name1}
390 expect_ok ${ZPOOL} import ${name0}
391 expect_ok ${ZPOOL} destroy ${name0}
392
393 expect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0}
394 expect_ok ${ZPOOL} offline ${name0} ${disk0}
395 expect_ok ${ZPOOL} export ${name0}
396 expect_ok ${ZPOOL} create ${name1} ${disk2}
397 exp=`(
398   echo "invalid vdev specification"
399   echo "use '-f' to override the following errors:"
400   echo "${fdisk0} is part of potentially active pool '${name0}'"
401 )`
402 add_msg="# TODO It shouldn't be possible to use offlined cache vdevs."
403 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
404 exp=`(
405   echo "  pool: ${name1}"
406   echo " state: ONLINE"
407   echo " scrub: none requested"
408   echo "config:"
409   echo "        NAME        STATE   READ WRITE CKSUM"
410   echo "        ${name1}    ONLINE     0     0     0"
411   echo "          ${disk2}  ONLINE     0     0     0"
412   echo "errors: No known data errors"
413 )`
414 expect "${exp}" ${ZPOOL} status ${name1}
415 expect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
416 add_msg=""
417 wait_for_resilver ${name1}
418 exp=`(
419   echo "  pool: ${name1}"
420   echo " state: ONLINE"
421   echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
422   echo "config:"
423   echo "        NAME          STATE   READ WRITE CKSUM"
424   echo "        ${name1}      ONLINE     0     0     0"
425   echo "          mirror      ONLINE     0     0     0"
426   echo "            ${disk2}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
427   echo "            ${disk0}  ONLINE     0     0     0(  [0-9.]+[A-Z] resilvered)?"
428   echo "errors: No known data errors"
429 )`
430 expect "${exp}" ${ZPOOL} status ${name1}
431 expect_ok ${ZPOOL} destroy ${name1}
432 expect_ok ${ZPOOL} import ${name0}
433 expect_ok ${ZPOOL} destroy ${name0}
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455 expect_ok ${ZPOOL} create ${name0} ${disk0}
456 expect_ok ${ZPOOL} create ${name1} ${disk1}
457 exp=`(
458   echo "invalid vdev specification"
459   echo "use '-f' to override the following errors:"
460   echo "${fdisk0} is part of active pool '${name0}'"
461 )`
462 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
463 exp=`(
464   echo "  pool: ${name1}"
465   echo " state: ONLINE"
466   echo " scrub: none requested"
467   echo "config:"
468   echo "        NAME        STATE   READ WRITE CKSUM"
469   echo "        ${name1}    ONLINE     0     0     0"
470   echo "          ${disk1}  ONLINE     0     0     0"
471   echo "errors: No known data errors"
472 )`
473 expect "${exp}" ${ZPOOL} status ${name1}
474 exp=`(
475   echo "invalid vdev specification"
476   echo "the following errors must be manually repaired:"
477   echo "${fdisk0} is part of active pool '${name0}'"
478 )`
479 expect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
480 exp=`(
481   echo "  pool: ${name1}"
482   echo " state: ONLINE"
483   echo " scrub: none requested"
484   echo "config:"
485   echo "        NAME        STATE   READ WRITE CKSUM"
486   echo "        ${name1}    ONLINE     0     0     0"
487   echo "          ${disk1}  ONLINE     0     0     0"
488   echo "errors: No known data errors"
489 )`
490 expect "${exp}" ${ZPOOL} status ${name1}
491 expect_ok ${ZPOOL} destroy ${name1}
492 expect_ok ${ZPOOL} destroy ${name0}
493
494 expect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
495 expect_ok ${ZPOOL} create ${name1} mirror ${disk2} ${disk3}
496 exp=`(
497   echo "invalid vdev specification"
498   echo "use '-f' to override the following errors:"
499   echo "${fdisk0} is part of active pool '${name0}'"
500 )`
501 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
502 exp=`(
503   echo "  pool: ${name1}"
504   echo " state: ONLINE"
505   echo " scrub: none requested"
506   echo "config:"
507   echo "        NAME          STATE   READ WRITE CKSUM"
508   echo "        ${name1}      ONLINE     0     0     0"
509   echo "          mirror      ONLINE     0     0     0"
510   echo "            ${disk2}  ONLINE     0     0     0"
511   echo "            ${disk3}  ONLINE     0     0     0"
512   echo "errors: No known data errors"
513 )`
514 expect "${exp}" ${ZPOOL} status ${name1}
515 exp=`(
516   echo "invalid vdev specification"
517   echo "the following errors must be manually repaired:"
518   echo "${fdisk0} is part of active pool '${name0}'"
519 )`
520 expect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
521 exp=`(
522   echo "  pool: ${name1}"
523   echo " state: ONLINE"
524   echo " scrub: none requested"
525   echo "config:"
526   echo "        NAME          STATE   READ WRITE CKSUM"
527   echo "        ${name1}      ONLINE     0     0     0"
528   echo "          mirror      ONLINE     0     0     0"
529   echo "            ${disk2}  ONLINE     0     0     0"
530   echo "            ${disk3}  ONLINE     0     0     0"
531   echo "errors: No known data errors"
532 )`
533 expect "${exp}" ${ZPOOL} status ${name1}
534 expect_ok ${ZPOOL} destroy ${name1}
535 expect_ok ${ZPOOL} destroy ${name0}
536
537 expect_ok ${ZPOOL} create ${name0} ${disk1} log ${disk0}
538 expect_ok ${ZPOOL} create ${name1} ${disk2} log ${disk3}
539 exp=`(
540   echo "invalid vdev specification"
541   echo "use '-f' to override the following errors:"
542   echo "${fdisk0} is part of active pool '${name0}'"
543 )`
544 expect "${exp}" ${ZPOOL} attach ${name1} ${disk3} ${disk0}
545 exp=`(
546   echo "  pool: ${name1}"
547   echo " state: ONLINE"
548   echo " scrub: none requested"
549   echo "config:"
550   echo "        NAME        STATE   READ WRITE CKSUM"
551   echo "        ${name1}    ONLINE     0     0     0"
552   echo "          ${disk2}  ONLINE     0     0     0"
553   echo "        logs        ONLINE     0     0     0"
554   echo "          ${disk3}  ONLINE     0     0     0"
555   echo "errors: No known data errors"
556 )`
557 expect "${exp}" ${ZPOOL} status ${name1}
558 exp=`(
559   echo "invalid vdev specification"
560   echo "the following errors must be manually repaired:"
561   echo "${fdisk0} is part of active pool '${name0}'"
562 )`
563 expect "${exp}" ${ZPOOL} attach -f ${name1} ${disk3} ${disk0}
564 exp=`(
565   echo "  pool: ${name1}"
566   echo " state: ONLINE"
567   echo " scrub: none requested"
568   echo "config:"
569   echo "        NAME        STATE   READ WRITE CKSUM"
570   echo "        ${name1}    ONLINE     0     0     0"
571   echo "          ${disk2}  ONLINE     0     0     0"
572   echo "        logs        ONLINE     0     0     0"
573   echo "          ${disk3}  ONLINE     0     0     0"
574   echo "errors: No known data errors"
575 )`
576 expect "${exp}" ${ZPOOL} status ${name1}
577 expect_ok ${ZPOOL} destroy ${name1}
578 expect_ok ${ZPOOL} destroy ${name0}
579
580 expect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0}
581 expect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5}
582 exp=`(
583   echo "invalid vdev specification"
584   echo "use '-f' to override the following errors:"
585   echo "${fdisk0} is part of active pool '${name0}'"
586 )`
587 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
588 exp=`(
589   echo "  pool: ${name1}"
590   echo " state: ONLINE"
591   echo " scrub: none requested"
592   echo "config:"
593   echo "        NAME          STATE   READ WRITE CKSUM"
594   echo "        ${name1}      ONLINE     0     0     0"
595   echo "          ${disk3}    ONLINE     0     0     0"
596   echo "        logs          ONLINE     0     0     0"
597   echo "          mirror      ONLINE     0     0     0"
598   echo "            ${disk4}  ONLINE     0     0     0"
599   echo "            ${disk5}  ONLINE     0     0     0"
600   echo "errors: No known data errors"
601 )`
602 expect "${exp}" ${ZPOOL} status ${name1}
603 exp=`(
604   echo "invalid vdev specification"
605   echo "the following errors must be manually repaired:"
606   echo "${fdisk0} is part of active pool '${name0}'"
607 )`
608 expect "${exp}" ${ZPOOL} attach -f ${name1} ${disk4} ${disk0}
609 exp=`(
610   echo "  pool: ${name1}"
611   echo " state: ONLINE"
612   echo " scrub: none requested"
613   echo "config:"
614   echo "        NAME          STATE   READ WRITE CKSUM"
615   echo "        ${name1}      ONLINE     0     0     0"
616   echo "          ${disk3}    ONLINE     0     0     0"
617   echo "        logs          ONLINE     0     0     0"
618   echo "          mirror      ONLINE     0     0     0"
619   echo "            ${disk4}  ONLINE     0     0     0"
620   echo "            ${disk5}  ONLINE     0     0     0"
621   echo "errors: No known data errors"
622 )`
623 expect "${exp}" ${ZPOOL} status ${name1}
624 expect_ok ${ZPOOL} destroy ${name1}
625 expect_ok ${ZPOOL} destroy ${name0}
626
627 expect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0}
628 expect_ok ${ZPOOL} create ${name1} ${disk2}
629 exp=`(
630   echo "invalid vdev specification"
631   echo "use '-f' to override the following errors:"
632   echo "${fdisk0} is part of active pool '${name0}'"
633 )`
634 add_msg="# TODO It shouldn't be possible to use offlined cache vdevs."
635 expect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0}
636 add_msg=""
637 exp=`(
638   echo "  pool: ${name1}"
639   echo " state: ONLINE"
640   echo " scrub: none requested"
641   echo "config:"
642   echo "        NAME        STATE   READ WRITE CKSUM"
643   echo "        ${name1}    ONLINE     0     0     0"
644   echo "          ${disk2}  ONLINE     0     0     0"
645   echo "errors: No known data errors"
646 )`
647 expect "${exp}" ${ZPOOL} status ${name1}
648 add_msg="# TODO It shouldn't be possible to use offlined cache vdevs."
649 exp=`(
650   echo "invalid vdev specification"
651   echo "the following errors must be manually repaired:"
652   echo "${fdisk0} is part of active pool '${name0}'"
653 )`
654 expect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0}
655 add_msg=""
656 exp=`(
657   echo "  pool: ${name1}"
658   echo " state: ONLINE"
659   echo " scrub: none requested"
660   echo "config:"
661   echo "        NAME        STATE   READ WRITE CKSUM"
662   echo "        ${name1}    ONLINE     0     0     0"
663   echo "          ${disk2}  ONLINE     0     0     0"
664   echo "errors: No known data errors"
665 )`
666 expect "${exp}" ${ZPOOL} status ${name1}
667 expect_ok ${ZPOOL} destroy ${name1}
668 expect_ok ${ZPOOL} destroy ${name0}
669
670 disks_destroy