5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or https://opensource.org/licenses/CDDL-1.0.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
24 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
29 # Copyright (c) 2016 by Delphix. All rights reserved.
32 .
$STF_SUITE/include
/libtest.shlib
36 # Executing 'zpool offline' with valid parameters succeeds.
39 # 1. Create an array of correctly formed 'zpool offline' options
40 # 2. Execute each element of the array.
41 # 3. Verify use of each option is successful.
43 verify_runnable
"global"
45 DISKLIST
=$
(get_disklist
$TESTPOOL)
46 set -A disks
$DISKLIST
47 typeset
-i num
=${#disks[*]}
54 # Ensure we don't leave disks in the offline state
56 for disk
in $DISKLIST; do
57 log_must zpool online
$TESTPOOL $disk
58 log_must check_state
$TESTPOOL $disk "online"
63 log_assert
"Executing 'zpool offline' with correct options succeeds"
67 if [[ -z $DISKLIST ]]; then
68 log_fail
"DISKLIST is empty."
74 for disk
in $DISKLIST; do
76 while [[ $i -lt ${#args[*]} ]]; do
77 if (( j
< num
)) ; then
78 log_must zpool offline
${args[$i]} $TESTPOOL $disk
79 log_must check_state
$TESTPOOL $disk "offline"
81 log_mustnot zpool offline
${args[$i]} $TESTPOOL $disk
82 log_must check_state
$TESTPOOL $disk "online"
90 log_note
"Issuing repeated 'zpool offline' commands succeeds."
95 for disk
in $DISKLIST; do
97 while [[ $i -lt $iters ]]; do
98 index
=`expr $RANDOM % ${#args[*]}`
99 log_must zpool offline
${args[$index]} $TESTPOOL $disk
100 log_must check_state
$TESTPOOL $disk "offline"
105 log_must zpool online
$TESTPOOL $disk
106 log_must check_state
$TESTPOOL $disk "online"
109 log_pass
"'zpool offline -f' succeeded"