1185029Spjd#!/bin/sh 2185029Spjd# $FreeBSD$ 3185029Spjd 4185029Spjddir=`dirname $0` 5185029Spjd. ${dir}/../../misc.sh 6185029Spjd 7185029Spjdecho "1..141" 8185029Spjd 9185029Spjddisks_create 11 10185029Spjdnames_create 2 11185029Spjd 12185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} 13185029Spjdexpect_ok ${ZPOOL} export ${name0} 14185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk1} 15185029Spjdexp=`( 16185029Spjd echo "invalid vdev specification" 17185029Spjd echo "use '-f' to override the following errors:" 18185029Spjd echo "${fdisk0} is part of exported pool '${name0}'" 19185029Spjd)` 20185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk1} ${disk0} 21185029Spjdexp=`( 22185029Spjd echo " pool: ${name1}" 23185029Spjd echo " state: ONLINE" 24185029Spjd echo " scrub: none requested" 25185029Spjd echo "config:" 26185029Spjd echo " NAME STATE READ WRITE CKSUM" 27185029Spjd echo " ${name1} ONLINE 0 0 0" 28185029Spjd echo " ${disk1} ONLINE 0 0 0" 29185029Spjd echo "errors: No known data errors" 30185029Spjd)` 31185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 32185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk1} ${disk0} 33185029Spjdwait_for_resilver ${name1} 34185029Spjdexp=`( 35185029Spjd echo " pool: ${name1}" 36185029Spjd echo " state: ONLINE" 37185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 38185029Spjd echo "config:" 39185029Spjd echo " NAME STATE READ WRITE CKSUM" 40185029Spjd echo " ${name1} ONLINE 0 0 0" 41185029Spjd echo " mirror ONLINE 0 0 0" 42185029Spjd echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 43185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 44185029Spjd echo "errors: No known data errors" 45185029Spjd)` 46185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 47185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 48185029Spjd 49185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} 50185029Spjdexpect_ok ${ZPOOL} export ${name0} 51185029Spjdexpect_ok ${ZPOOL} create ${name1} mirror ${disk1} ${disk2} 52185029Spjdexp=`( 53185029Spjd echo "invalid vdev specification" 54185029Spjd echo "use '-f' to override the following errors:" 55185029Spjd echo "${fdisk0} is part of exported pool '${name0}'" 56185029Spjd)` 57185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk1} ${disk0} 58185029Spjdexp=`( 59185029Spjd echo " pool: ${name1}" 60185029Spjd echo " state: ONLINE" 61185029Spjd echo " scrub: none requested" 62185029Spjd echo "config:" 63185029Spjd echo " NAME STATE READ WRITE CKSUM" 64185029Spjd echo " ${name1} ONLINE 0 0 0" 65185029Spjd echo " mirror ONLINE 0 0 0" 66185029Spjd echo " ${disk1} ONLINE 0 0 0" 67185029Spjd echo " ${disk2} ONLINE 0 0 0" 68185029Spjd echo "errors: No known data errors" 69185029Spjd)` 70185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 71185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk1} ${disk0} 72185029Spjdwait_for_resilver ${name1} 73185029Spjdexp=`( 74185029Spjd echo " pool: ${name1}" 75185029Spjd echo " state: ONLINE" 76185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 77185029Spjd echo "config:" 78185029Spjd echo " NAME STATE READ WRITE CKSUM" 79185029Spjd echo " ${name1} ONLINE 0 0 0" 80185029Spjd echo " mirror ONLINE 0 0 0" 81185029Spjd echo " ${disk1} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 82185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 83185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 84185029Spjd echo "errors: No known data errors" 85185029Spjd)` 86185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 87185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 88185029Spjd 89185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0} 90185029Spjdexpect_ok ${ZPOOL} export ${name0} 91185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk3} log ${disk4} 92185029Spjdexp=`( 93185029Spjd echo "invalid vdev specification" 94185029Spjd echo "use '-f' to override the following errors:" 95185029Spjd echo "${fdisk0} is part of exported pool '${name0}'" 96185029Spjd)` 97185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk4} ${disk0} 98185029Spjdexp=`( 99185029Spjd echo " pool: ${name1}" 100185029Spjd echo " state: ONLINE" 101185029Spjd echo " scrub: none requested" 102185029Spjd echo "config:" 103185029Spjd echo " NAME STATE READ WRITE CKSUM" 104185029Spjd echo " ${name1} ONLINE 0 0 0" 105185029Spjd echo " ${disk3} ONLINE 0 0 0" 106185029Spjd echo " logs ONLINE 0 0 0" 107185029Spjd echo " ${disk4} ONLINE 0 0 0" 108185029Spjd echo "errors: No known data errors" 109185029Spjd)` 110185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 111185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0} 112185029Spjdwait_for_resilver ${name1} 113185029Spjdexp=`( 114185029Spjd echo " pool: ${name1}" 115185029Spjd echo " state: ONLINE" 116185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 117185029Spjd echo "config:" 118185029Spjd echo " NAME STATE READ WRITE CKSUM" 119185029Spjd echo " ${name1} ONLINE 0 0 0" 120185029Spjd echo " ${disk3} ONLINE 0 0 0" 121185029Spjd echo " logs ONLINE 0 0 0" 122185029Spjd echo " mirror ONLINE 0 0 0" 123185029Spjd echo " ${disk4} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 124185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 125185029Spjd echo "errors: No known data errors" 126185029Spjd)` 127185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 128185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 129185029Spjdexpect_ok ${ZPOOL} import ${name0} 130185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 131185029Spjd 132185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0} 133185029Spjdexpect_ok ${ZPOOL} export ${name0} 134185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5} 135185029Spjdexp=`( 136185029Spjd echo "invalid vdev specification" 137185029Spjd echo "use '-f' to override the following errors:" 138185029Spjd echo "${fdisk0} is part of exported pool '${name0}'" 139185029Spjd)` 140185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 141185029Spjdexp=`( 142185029Spjd echo " pool: ${name1}" 143185029Spjd echo " state: ONLINE" 144185029Spjd echo " scrub: none requested" 145185029Spjd echo "config:" 146185029Spjd echo " NAME STATE READ WRITE CKSUM" 147185029Spjd echo " ${name1} ONLINE 0 0 0" 148185029Spjd echo " ${disk3} ONLINE 0 0 0" 149185029Spjd echo " logs ONLINE 0 0 0" 150185029Spjd echo " mirror ONLINE 0 0 0" 151185029Spjd echo " ${disk4} ONLINE 0 0 0" 152185029Spjd echo " ${disk5} ONLINE 0 0 0" 153185029Spjd echo "errors: No known data errors" 154185029Spjd)` 155185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 156185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0} 157185029Spjdwait_for_resilver ${name1} 158185029Spjdexp=`( 159185029Spjd echo " pool: ${name1}" 160185029Spjd echo " state: ONLINE" 161185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 162185029Spjd echo "config:" 163185029Spjd echo " NAME STATE READ WRITE CKSUM" 164185029Spjd echo " ${name1} ONLINE 0 0 0" 165185029Spjd echo " ${disk3} ONLINE 0 0 0" 166185029Spjd echo " logs ONLINE 0 0 0" 167185029Spjd echo " mirror ONLINE 0 0 0" 168185029Spjd echo " ${disk4} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 169185029Spjd echo " ${disk5} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 170185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 171185029Spjd echo "errors: No known data errors" 172185029Spjd)` 173185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 174185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 175185029Spjdexpect_ok ${ZPOOL} import ${name0} 176185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 177185029Spjd 178185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0} 179185029Spjdexpect_ok ${ZPOOL} export ${name0} 180185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk2} 181185029Spjdexp=`( 182185029Spjd echo "invalid vdev specification" 183185029Spjd echo "use '-f' to override the following errors:" 184185029Spjd echo "${fdisk0} is part of exported pool '${name0}'" 185185029Spjd)` 186185029Spjdadd_msg="# TODO It shouldn't be possible to use offlined cache vdevs." 187185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 188185029Spjdexp=`( 189185029Spjd echo " pool: ${name1}" 190185029Spjd echo " state: ONLINE" 191185029Spjd echo " scrub: none requested" 192185029Spjd echo "config:" 193185029Spjd echo " NAME STATE READ WRITE CKSUM" 194185029Spjd echo " ${name1} ONLINE 0 0 0" 195185029Spjd echo " ${disk2} ONLINE 0 0 0" 196185029Spjd echo "errors: No known data errors" 197185029Spjd)` 198185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 199185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 200185029Spjdadd_msg="" 201185029Spjdwait_for_resilver ${name1} 202185029Spjdexp=`( 203185029Spjd echo " pool: ${name1}" 204185029Spjd echo " state: ONLINE" 205185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 206185029Spjd echo "config:" 207185029Spjd echo " NAME STATE READ WRITE CKSUM" 208185029Spjd echo " ${name1} ONLINE 0 0 0" 209185029Spjd echo " mirror ONLINE 0 0 0" 210185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 211185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 212185029Spjd echo "errors: No known data errors" 213185029Spjd)` 214185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 215185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 216185029Spjdexpect_ok ${ZPOOL} import ${name0} 217185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 218185029Spjd 219185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 220185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk0} 221185029Spjdexpect_ok ${ZPOOL} export ${name0} 222185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk2} 223185029Spjdexp=`( 224185029Spjd echo "invalid vdev specification" 225185029Spjd echo "use '-f' to override the following errors:" 226185029Spjd echo "${fdisk0} is part of potentially active pool '${name0}'" 227185029Spjd)` 228185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 229185029Spjdexp=`( 230185029Spjd echo " pool: ${name1}" 231185029Spjd echo " state: ONLINE" 232185029Spjd echo " scrub: none requested" 233185029Spjd echo "config:" 234185029Spjd echo " NAME STATE READ WRITE CKSUM" 235185029Spjd echo " ${name1} ONLINE 0 0 0" 236185029Spjd echo " ${disk2} ONLINE 0 0 0" 237185029Spjd echo "errors: No known data errors" 238185029Spjd)` 239185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 240185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 241185029Spjdwait_for_resilver ${name1} 242185029Spjdexp=`( 243185029Spjd echo " pool: ${name1}" 244185029Spjd echo " state: ONLINE" 245185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 246185029Spjd echo "config:" 247185029Spjd echo " NAME STATE READ WRITE CKSUM" 248185029Spjd echo " ${name1} ONLINE 0 0 0" 249185029Spjd echo " mirror ONLINE 0 0 0" 250185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 251185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 252185029Spjd echo "errors: No known data errors" 253185029Spjd)` 254185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 255185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 256185029Spjdexpect_ok ${ZPOOL} import ${name0} 257185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 258185029Spjd 259185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 260185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk0} 261185029Spjdexpect_ok ${ZPOOL} export ${name0} 262185029Spjdexpect_ok ${ZPOOL} create ${name1} mirror ${disk2} ${disk3} 263185029Spjdexp=`( 264185029Spjd echo "invalid vdev specification" 265185029Spjd echo "use '-f' to override the following errors:" 266185029Spjd echo "${fdisk0} is part of potentially active pool '${name0}'" 267185029Spjd)` 268185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 269185029Spjdexp=`( 270185029Spjd echo " pool: ${name1}" 271185029Spjd echo " state: ONLINE" 272185029Spjd echo " scrub: none requested" 273185029Spjd echo "config:" 274185029Spjd echo " NAME STATE READ WRITE CKSUM" 275185029Spjd echo " ${name1} ONLINE 0 0 0" 276185029Spjd echo " mirror ONLINE 0 0 0" 277185029Spjd echo " ${disk2} ONLINE 0 0 0" 278185029Spjd echo " ${disk3} ONLINE 0 0 0" 279185029Spjd echo "errors: No known data errors" 280185029Spjd)` 281185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 282185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 283185029Spjdwait_for_resilver ${name1} 284185029Spjdexp=`( 285185029Spjd echo " pool: ${name1}" 286185029Spjd echo " state: ONLINE" 287185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 288185029Spjd echo "config:" 289185029Spjd echo " NAME STATE READ WRITE CKSUM" 290185029Spjd echo " ${name1} ONLINE 0 0 0" 291185029Spjd echo " mirror ONLINE 0 0 0" 292185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 293185029Spjd echo " ${disk3} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 294185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 295185029Spjd echo "errors: No known data errors" 296185029Spjd)` 297185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 298185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 299185029Spjdexpect_ok ${ZPOOL} import ${name0} 300185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 301185029Spjd 302185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0} 303185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk0} 304185029Spjdexpect_ok ${ZPOOL} export ${name0} 305185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk3} log ${disk4} 306185029Spjdexp=`( 307185029Spjd echo "invalid vdev specification" 308185029Spjd echo "use '-f' to override the following errors:" 309185029Spjd echo "${fdisk0} is part of potentially active pool '${name0}'" 310185029Spjd)` 311185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk4} ${disk0} 312185029Spjdexp=`( 313185029Spjd echo " pool: ${name1}" 314185029Spjd echo " state: ONLINE" 315185029Spjd echo " scrub: none requested" 316185029Spjd echo "config:" 317185029Spjd echo " NAME STATE READ WRITE CKSUM" 318185029Spjd echo " ${name1} ONLINE 0 0 0" 319185029Spjd echo " ${disk3} ONLINE 0 0 0" 320185029Spjd echo " logs ONLINE 0 0 0" 321185029Spjd echo " ${disk4} ONLINE 0 0 0" 322185029Spjd echo "errors: No known data errors" 323185029Spjd)` 324185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 325185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0} 326185029Spjdwait_for_resilver ${name1} 327185029Spjdexp=`( 328185029Spjd echo " pool: ${name1}" 329185029Spjd echo " state: ONLINE" 330185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 331185029Spjd echo "config:" 332185029Spjd echo " NAME STATE READ WRITE CKSUM" 333185029Spjd echo " ${name1} ONLINE 0 0 0" 334185029Spjd echo " ${disk3} ONLINE 0 0 0" 335185029Spjd echo " logs ONLINE 0 0 0" 336185029Spjd echo " mirror ONLINE 0 0 0" 337185029Spjd echo " ${disk4} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 338185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 339185029Spjd echo "errors: No known data errors" 340185029Spjd)` 341185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 342185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 343185029Spjdexpect_ok ${ZPOOL} import ${name0} 344185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 345185029Spjd 346185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0} 347185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk0} 348185029Spjdexpect_ok ${ZPOOL} export ${name0} 349185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5} 350185029Spjdexp=`( 351185029Spjd echo "invalid vdev specification" 352185029Spjd echo "use '-f' to override the following errors:" 353185029Spjd echo "${fdisk0} is part of potentially active pool '${name0}'" 354185029Spjd)` 355185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 356185029Spjdexp=`( 357185029Spjd echo " pool: ${name1}" 358185029Spjd echo " state: ONLINE" 359185029Spjd echo " scrub: none requested" 360185029Spjd echo "config:" 361185029Spjd echo " NAME STATE READ WRITE CKSUM" 362185029Spjd echo " ${name1} ONLINE 0 0 0" 363185029Spjd echo " ${disk3} ONLINE 0 0 0" 364185029Spjd echo " logs ONLINE 0 0 0" 365185029Spjd echo " mirror ONLINE 0 0 0" 366185029Spjd echo " ${disk4} ONLINE 0 0 0" 367185029Spjd echo " ${disk5} ONLINE 0 0 0" 368185029Spjd echo "errors: No known data errors" 369185029Spjd)` 370185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 371185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk4} ${disk0} 372185029Spjdwait_for_resilver ${name1} 373185029Spjdexp=`( 374185029Spjd echo " pool: ${name1}" 375185029Spjd echo " state: ONLINE" 376185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 377185029Spjd echo "config:" 378185029Spjd echo " NAME STATE READ WRITE CKSUM" 379185029Spjd echo " ${name1} ONLINE 0 0 0" 380185029Spjd echo " ${disk3} ONLINE 0 0 0" 381185029Spjd echo " logs ONLINE 0 0 0" 382185029Spjd echo " mirror ONLINE 0 0 0" 383185029Spjd echo " ${disk4} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 384185029Spjd echo " ${disk5} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 385185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 386185029Spjd echo "errors: No known data errors" 387185029Spjd)` 388185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 389185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 390185029Spjdexpect_ok ${ZPOOL} import ${name0} 391185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 392185029Spjd 393185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0} 394185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk0} 395185029Spjdexpect_ok ${ZPOOL} export ${name0} 396185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk2} 397185029Spjdexp=`( 398185029Spjd echo "invalid vdev specification" 399185029Spjd echo "use '-f' to override the following errors:" 400185029Spjd echo "${fdisk0} is part of potentially active pool '${name0}'" 401185029Spjd)` 402185029Spjdadd_msg="# TODO It shouldn't be possible to use offlined cache vdevs." 403185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 404185029Spjdexp=`( 405185029Spjd echo " pool: ${name1}" 406185029Spjd echo " state: ONLINE" 407185029Spjd echo " scrub: none requested" 408185029Spjd echo "config:" 409185029Spjd echo " NAME STATE READ WRITE CKSUM" 410185029Spjd echo " ${name1} ONLINE 0 0 0" 411185029Spjd echo " ${disk2} ONLINE 0 0 0" 412185029Spjd echo "errors: No known data errors" 413185029Spjd)` 414185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 415185029Spjdexpect_ok ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 416185029Spjdadd_msg="" 417185029Spjdwait_for_resilver ${name1} 418185029Spjdexp=`( 419185029Spjd echo " pool: ${name1}" 420185029Spjd echo " state: ONLINE" 421185029Spjd echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*" 422185029Spjd echo "config:" 423185029Spjd echo " NAME STATE READ WRITE CKSUM" 424185029Spjd echo " ${name1} ONLINE 0 0 0" 425185029Spjd echo " mirror ONLINE 0 0 0" 426185029Spjd echo " ${disk2} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 427185029Spjd echo " ${disk0} ONLINE 0 0 0( [0-9.]+[A-Z] resilvered)?" 428185029Spjd echo "errors: No known data errors" 429185029Spjd)` 430185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 431185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 432185029Spjdexpect_ok ${ZPOOL} import ${name0} 433185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 434185029Spjd 435185029Spjd 436185029Spjd 437185029Spjd 438185029Spjd 439185029Spjd 440185029Spjd 441185029Spjd 442185029Spjd 443185029Spjd 444185029Spjd 445185029Spjd 446185029Spjd 447185029Spjd 448185029Spjd 449185029Spjd 450185029Spjd 451185029Spjd 452185029Spjd 453185029Spjd 454185029Spjd 455185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} 456185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk1} 457185029Spjdexp=`( 458185029Spjd echo "invalid vdev specification" 459185029Spjd echo "use '-f' to override the following errors:" 460185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 461185029Spjd)` 462185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 463185029Spjdexp=`( 464185029Spjd echo " pool: ${name1}" 465185029Spjd echo " state: ONLINE" 466185029Spjd echo " scrub: none requested" 467185029Spjd echo "config:" 468185029Spjd echo " NAME STATE READ WRITE CKSUM" 469185029Spjd echo " ${name1} ONLINE 0 0 0" 470185029Spjd echo " ${disk1} ONLINE 0 0 0" 471185029Spjd echo "errors: No known data errors" 472185029Spjd)` 473185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 474185029Spjdexp=`( 475185029Spjd echo "invalid vdev specification" 476185029Spjd echo "the following errors must be manually repaired:" 477185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 478185029Spjd)` 479185029Spjdexpect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 480185029Spjdexp=`( 481185029Spjd echo " pool: ${name1}" 482185029Spjd echo " state: ONLINE" 483185029Spjd echo " scrub: none requested" 484185029Spjd echo "config:" 485185029Spjd echo " NAME STATE READ WRITE CKSUM" 486185029Spjd echo " ${name1} ONLINE 0 0 0" 487185029Spjd echo " ${disk1} ONLINE 0 0 0" 488185029Spjd echo "errors: No known data errors" 489185029Spjd)` 490185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 491185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 492185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 493185029Spjd 494185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1} 495185029Spjdexpect_ok ${ZPOOL} create ${name1} mirror ${disk2} ${disk3} 496185029Spjdexp=`( 497185029Spjd echo "invalid vdev specification" 498185029Spjd echo "use '-f' to override the following errors:" 499185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 500185029Spjd)` 501185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 502185029Spjdexp=`( 503185029Spjd echo " pool: ${name1}" 504185029Spjd echo " state: ONLINE" 505185029Spjd echo " scrub: none requested" 506185029Spjd echo "config:" 507185029Spjd echo " NAME STATE READ WRITE CKSUM" 508185029Spjd echo " ${name1} ONLINE 0 0 0" 509185029Spjd echo " mirror ONLINE 0 0 0" 510185029Spjd echo " ${disk2} ONLINE 0 0 0" 511185029Spjd echo " ${disk3} ONLINE 0 0 0" 512185029Spjd echo "errors: No known data errors" 513185029Spjd)` 514185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 515185029Spjdexp=`( 516185029Spjd echo "invalid vdev specification" 517185029Spjd echo "the following errors must be manually repaired:" 518185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 519185029Spjd)` 520185029Spjdexpect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 521185029Spjdexp=`( 522185029Spjd echo " pool: ${name1}" 523185029Spjd echo " state: ONLINE" 524185029Spjd echo " scrub: none requested" 525185029Spjd echo "config:" 526185029Spjd echo " NAME STATE READ WRITE CKSUM" 527185029Spjd echo " ${name1} ONLINE 0 0 0" 528185029Spjd echo " mirror ONLINE 0 0 0" 529185029Spjd echo " ${disk2} ONLINE 0 0 0" 530185029Spjd echo " ${disk3} ONLINE 0 0 0" 531185029Spjd echo "errors: No known data errors" 532185029Spjd)` 533185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 534185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 535185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 536185029Spjd 537185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log ${disk0} 538185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk2} log ${disk3} 539185029Spjdexp=`( 540185029Spjd echo "invalid vdev specification" 541185029Spjd echo "use '-f' to override the following errors:" 542185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 543185029Spjd)` 544185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk3} ${disk0} 545185029Spjdexp=`( 546185029Spjd echo " pool: ${name1}" 547185029Spjd echo " state: ONLINE" 548185029Spjd echo " scrub: none requested" 549185029Spjd echo "config:" 550185029Spjd echo " NAME STATE READ WRITE CKSUM" 551185029Spjd echo " ${name1} ONLINE 0 0 0" 552185029Spjd echo " ${disk2} ONLINE 0 0 0" 553185029Spjd echo " logs ONLINE 0 0 0" 554185029Spjd echo " ${disk3} ONLINE 0 0 0" 555185029Spjd echo "errors: No known data errors" 556185029Spjd)` 557185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 558185029Spjdexp=`( 559185029Spjd echo "invalid vdev specification" 560185029Spjd echo "the following errors must be manually repaired:" 561185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 562185029Spjd)` 563185029Spjdexpect "${exp}" ${ZPOOL} attach -f ${name1} ${disk3} ${disk0} 564185029Spjdexp=`( 565185029Spjd echo " pool: ${name1}" 566185029Spjd echo " state: ONLINE" 567185029Spjd echo " scrub: none requested" 568185029Spjd echo "config:" 569185029Spjd echo " NAME STATE READ WRITE CKSUM" 570185029Spjd echo " ${name1} ONLINE 0 0 0" 571185029Spjd echo " ${disk2} ONLINE 0 0 0" 572185029Spjd echo " logs ONLINE 0 0 0" 573185029Spjd echo " ${disk3} ONLINE 0 0 0" 574185029Spjd echo "errors: No known data errors" 575185029Spjd)` 576185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 577185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 578185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 579185029Spjd 580185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} log mirror ${disk2} ${disk0} 581185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk3} log mirror ${disk4} ${disk5} 582185029Spjdexp=`( 583185029Spjd echo "invalid vdev specification" 584185029Spjd echo "use '-f' to override the following errors:" 585185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 586185029Spjd)` 587185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 588185029Spjdexp=`( 589185029Spjd echo " pool: ${name1}" 590185029Spjd echo " state: ONLINE" 591185029Spjd echo " scrub: none requested" 592185029Spjd echo "config:" 593185029Spjd echo " NAME STATE READ WRITE CKSUM" 594185029Spjd echo " ${name1} ONLINE 0 0 0" 595185029Spjd echo " ${disk3} ONLINE 0 0 0" 596185029Spjd echo " logs ONLINE 0 0 0" 597185029Spjd echo " mirror ONLINE 0 0 0" 598185029Spjd echo " ${disk4} ONLINE 0 0 0" 599185029Spjd echo " ${disk5} ONLINE 0 0 0" 600185029Spjd echo "errors: No known data errors" 601185029Spjd)` 602185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 603185029Spjdexp=`( 604185029Spjd echo "invalid vdev specification" 605185029Spjd echo "the following errors must be manually repaired:" 606185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 607185029Spjd)` 608185029Spjdexpect "${exp}" ${ZPOOL} attach -f ${name1} ${disk4} ${disk0} 609185029Spjdexp=`( 610185029Spjd echo " pool: ${name1}" 611185029Spjd echo " state: ONLINE" 612185029Spjd echo " scrub: none requested" 613185029Spjd echo "config:" 614185029Spjd echo " NAME STATE READ WRITE CKSUM" 615185029Spjd echo " ${name1} ONLINE 0 0 0" 616185029Spjd echo " ${disk3} ONLINE 0 0 0" 617185029Spjd echo " logs ONLINE 0 0 0" 618185029Spjd echo " mirror ONLINE 0 0 0" 619185029Spjd echo " ${disk4} ONLINE 0 0 0" 620185029Spjd echo " ${disk5} ONLINE 0 0 0" 621185029Spjd echo "errors: No known data errors" 622185029Spjd)` 623185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 624185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 625185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 626185029Spjd 627185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk1} cache ${disk0} 628185029Spjdexpect_ok ${ZPOOL} create ${name1} ${disk2} 629185029Spjdexp=`( 630185029Spjd echo "invalid vdev specification" 631185029Spjd echo "use '-f' to override the following errors:" 632185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 633185029Spjd)` 634185029Spjdadd_msg="# TODO It shouldn't be possible to use offlined cache vdevs." 635185029Spjdexpect "${exp}" ${ZPOOL} attach ${name1} ${disk2} ${disk0} 636185029Spjdadd_msg="" 637185029Spjdexp=`( 638185029Spjd echo " pool: ${name1}" 639185029Spjd echo " state: ONLINE" 640185029Spjd echo " scrub: none requested" 641185029Spjd echo "config:" 642185029Spjd echo " NAME STATE READ WRITE CKSUM" 643185029Spjd echo " ${name1} ONLINE 0 0 0" 644185029Spjd echo " ${disk2} ONLINE 0 0 0" 645185029Spjd echo "errors: No known data errors" 646185029Spjd)` 647185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 648185029Spjdadd_msg="# TODO It shouldn't be possible to use offlined cache vdevs." 649185029Spjdexp=`( 650185029Spjd echo "invalid vdev specification" 651185029Spjd echo "the following errors must be manually repaired:" 652185029Spjd echo "${fdisk0} is part of active pool '${name0}'" 653185029Spjd)` 654185029Spjdexpect "${exp}" ${ZPOOL} attach -f ${name1} ${disk2} ${disk0} 655185029Spjdadd_msg="" 656185029Spjdexp=`( 657185029Spjd echo " pool: ${name1}" 658185029Spjd echo " state: ONLINE" 659185029Spjd echo " scrub: none requested" 660185029Spjd echo "config:" 661185029Spjd echo " NAME STATE READ WRITE CKSUM" 662185029Spjd echo " ${name1} ONLINE 0 0 0" 663185029Spjd echo " ${disk2} ONLINE 0 0 0" 664185029Spjd echo "errors: No known data errors" 665185029Spjd)` 666185029Spjdexpect "${exp}" ${ZPOOL} status ${name1} 667185029Spjdexpect_ok ${ZPOOL} destroy ${name1} 668185029Spjdexpect_ok ${ZPOOL} destroy ${name0} 669185029Spjd 670185029Spjddisks_destroy 671