The routine get_lustre_env() is available to all Lustre test
suites and sets an environment variable for the Lustre
version of servers; MGS, MDS1, etc.
In mds-survey, sanity-sec, ost-pools,replay-single and
sanity-pcc, replace the calls to lustre_version_code()
and lustre_build_version() for all server types with
definitions from get_lustre_env().
While doing this, replace ‘lustre_version_code $SINGLEMDS’
with ‘MDS1_VERSION’. If skip_env() is called based on a
Lustre version check, change this to skip().
Clean up around any modifications by removing calls to
return() or exit() after skip() or skip_env().
Test-Parameters: trivial testlist=mds-survey,sanity-pcc,sanity-sec,ost-pools,replay-single
Test-Parameters: fstype=zfs testlist=mds-survey,sanity-pcc,sanity-sec,ost-pools,replay-single
Signed-off-by: James Nunez <jnunez@whamcloud.com>
Change-Id: Ia4b0f426943fdc2f4bcdaa312fbb6f6113ee058f
Reviewed-on: https://review.whamcloud.com/35928
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Emoly Liu <emoly@whamcloud.com>
MDSSURVEY=${MDSSURVEY:-$(which mds-survey 2>/dev/null || true)}
[ -z ${MDSSURVEY} ] && skip_env "mds-survey not found"
MDSSURVEY=${MDSSURVEY:-$(which mds-survey 2>/dev/null || true)}
[ -z ${MDSSURVEY} ] && skip_env "mds-survey not found"
-if [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.51) ]; then
- skip_env "Need MDS version at least 2.3.51"
+if [ "$MDS1_VERSION" -lt $(version_code 2.3.51) ]; then
+ skip "Need MDS version at least 2.3.51"
fi
file_count=${file_count:-150000}
fi
file_count=${file_count:-150000}
check_file_not_in_pool $dir2/file4 $POOL
check_file_not_in_pool $dir1/file5 $POOL2
check_file_not_in_pool $dir2/file4 $POOL
check_file_not_in_pool $dir1/file5 $POOL2
- if [ $(lustre_version_code mds1) -ge $(version_code 2.10.54) ]; then
+ if [ "$MDS1_VERSION" -ge $(version_code 2.10.54) ]; then
check_dir_in_pool $dir3 $POOL
check_file_in_pool $dir3/file3 $POOL
check_file_in_pool $dir2/file4 $POOL2
check_dir_in_pool $dir3 $POOL
check_file_in_pool $dir3/file3 $POOL
check_file_in_pool $dir2/file4 $POOL2
# XXX remove the interoperability code once we drop the old server
# ( < 2.3.50) support.
# XXX remove the interoperability code once we drop the old server
# ( < 2.3.50) support.
- if [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.50) ]; then
+ if [ "$MDS1_VERSION" -lt $(version_code 2.3.50) ]; then
$LFS quotaoff -ug $MOUNT
$LFS quotacheck -ug $MOUNT
else
$LFS quotaoff -ug $MOUNT
$LFS quotacheck -ug $MOUNT
else
# XXX remove the interoperability code once we drop the old server
# ( < 2.3.50) support.
# XXX remove the interoperability code once we drop the old server
# ( < 2.3.50) support.
- if [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.50) ]; then
+ if [ "$MDS1_VERSION" -lt $(version_code 2.3.50) ]; then
$LFS quotaoff -ug $MOUNT
else
if [[ $PERM_CMD == *"set_param -P"* ]]; then
$LFS quotaoff -ug $MOUNT
else
if [[ $PERM_CMD == *"set_param -P"* ]]; then
run_test 23b "OST pools and OOS"
test_24() {
run_test 23b "OST pools and OOS"
test_24() {
- local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
[[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs"
[[ $OSTCOUNT -le 1 ]] && skip_env "needs >= 2 OSTs"
-
- local server_version=$(lustre_version_code $SINGLEMDS)
- [[ $server_version -ge $(version_code 2.8.56) ]] ||
+ [[ "$MDS1_VERSION" -ge $(version_code 2.8.56) ]] ||
skip "Need server version newer than 2.8.55"
skip "Need server version newer than 2.8.55"
+ local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
local numfiles=10
local i=0
local TGT
local numfiles=10
local i=0
local TGT
run_test 7 "Fail OST before obd_destroy"
test_8a() {
run_test 7 "Fail OST before obd_destroy"
test_8a() {
- [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] ||
- { skip "Need MDS version at least 2.3.0"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.3.0) ]] ||
+ skip "Need MDS version at least 2.3.0"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
run_test 8a "Verify redo io: redo io when get -EINPROGRESS error"
test_8b() {
run_test 8a "Verify redo io: redo io when get -EINPROGRESS error"
test_8b() {
- [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] ||
- { skip "Need MDS version at least 2.3.0"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.3.0) ]] ||
+ skip "Need MDS version at least 2.3.0"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
run_test 8b "Verify redo io: redo io should success after recovery"
test_8c() {
run_test 8b "Verify redo io: redo io should success after recovery"
test_8c() {
- [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] ||
- { skip "Need MDS version at least 2.3.0"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.3.0) ]] ||
+ skip "Need MDS version at least 2.3.0"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
verify=$ROOT/tmp/verify-$$
dd if=/dev/urandom of=$verify bs=4096 count=1280 ||
error "Create verify file failed"
run_test 8c "Verify redo io: redo io should fail after eviction"
test_8d() {
run_test 8c "Verify redo io: redo io should fail after eviction"
test_8d() {
- [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] ||
- { skip "Need MDS version at least 2.3.0"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.3.0) ]] ||
+ skip "Need MDS version at least 2.3.0"
#define OBD_FAIL_MDS_DQACQ_NET 0x187
do_facet $SINGLEMDS "lctl set_param fail_loc=0x187"
# test the non-intent create path
#define OBD_FAIL_MDS_DQACQ_NET 0x187
do_facet $SINGLEMDS "lctl set_param fail_loc=0x187"
# test the non-intent create path
run_test 8d "Verify redo creation on -EINPROGRESS"
test_8e() {
run_test 8d "Verify redo creation on -EINPROGRESS"
test_8e() {
- [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] ||
- { skip "Need MDS version at least 2.3.0"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.3.0) ]] ||
+ skip "Need MDS version at least 2.3.0"
sleep 1 # ensure we have a fresh statfs
#define OBD_FAIL_OST_STATFS_EINPROGRESS 0x231
do_facet ost1 "lctl set_param fail_loc=0x231"
sleep 1 # ensure we have a fresh statfs
#define OBD_FAIL_OST_STATFS_EINPROGRESS 0x231
do_facet ost1 "lctl set_param fail_loc=0x231"
run_test 8e "Verify that ptlrpc resends request on -EINPROGRESS"
test_9() {
run_test 8e "Verify that ptlrpc resends request on -EINPROGRESS"
test_9() {
- [ $(lustre_version_code ost1) -ge $(version_code 2.6.54) ] ||
- { skip "Need OST version at least 2.6.54"; return; }
+ [ "$OST1_VERSION" -ge $(version_code 2.6.54) ] ||
+ skip "Need OST version at least 2.6.54"
$LFS setstripe -i 0 -c 1 $DIR/$tfile || error "setstripe failed"
# LU-1573 - Add duplicate write to generate grants
$LFS setstripe -i 0 -c 1 $DIR/$tfile || error "setstripe failed"
# LU-1573 - Add duplicate write to generate grants
-if [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.12.52) ]]; then
- skip_env "Need MDS version at least 2.12.52" && exit
+if [[ "$MDS1_VERSION" -lt $(version_code 2.12.52) ]]; then
+ skip "Need MDS version at least 2.12.52"
fi
# $RUNAS_ID may get set incorrectly somewhere else
fi
# $RUNAS_ID may get set incorrectly somewhere else
# as for remote client, the groups of the specified uid on MDT
# will be obtained by upcall /sbin/l_getidentity and used.
test_4() {
# as for remote client, the groups of the specified uid on MDT
# will be obtained by upcall /sbin/l_getidentity and used.
test_4() {
- local server_version=$(lustre_version_code $SINGLEMDS)
-
- [[ $server_version -ge $(version_code 2.6.93) ]] ||
- [[ $server_version -ge $(version_code 2.5.35) &&
- $server_version -lt $(version_code 2.5.50) ]] ||
- { skip "Need MDS version at least 2.6.93 or 2.5.35"; return; }
+ [[ "$MDS1_VERSION" -ge $(version_code 2.6.93) ]] ||
+ [[ "$MDS1_VERSION" -ge $(version_code 2.5.35) &&
+ "$MDS1_VERSION" -lt $(version_code 2.5.50) ]] ||
+ skip "Need MDS version at least 2.6.93 or 2.5.35"
rm -rf $DIR/$tdir
mkdir -p $DIR/$tdir
rm -rf $DIR/$tdir
mkdir -p $DIR/$tdir
}
update_idmaps() { #LU-10040
}
update_idmaps() { #LU-10040
- [ $(lustre_version_code mgs) -lt $(version_code 2.10.55) ] &&
- skip "Need MGS >= 2.10.55" &&
- return
+ [ "$MGS_VERSION" -lt $(version_code 2.10.55) ] &&
+ skip "Need MGS >= 2.10.55"
+
local csum=${HOSTNAME_CHECKSUM}_0
local old_id_client=$ID0
local old_id_fs=$((ID0 + 1))
local csum=${HOSTNAME_CHECKSUM}_0
local old_id_client=$ID0
local old_id_fs=$((ID0 + 1))
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
+
local cmd
cmd[0]="$LCTL nodemap_modify --property squash_uid"
local cmd
cmd[0]="$LCTL nodemap_modify --property squash_uid"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- [[ $rc != 0 ]] && error "nodemap_add failed with $rc" && return 1
+ [[ $rc != 0 ]] && error "nodemap_add failed with $rc"
- [[ $rc != 0 ]] && error "nodemap_del failed with $rc" && return 2
+ [[ $rc != 0 ]] && error "nodemap_del failed with $rc"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
run_test 10a "nodemap reject duplicate ranges"
test_10b() {
run_test 10a "nodemap reject duplicate ranges"
test_10b() {
- [ $(lustre_version_code mgs) -lt $(version_code 2.10.53) ] &&
- skip "Need MGS >= 2.10.53" && return
+ [ "$MGS_VERSION" -lt $(version_code 2.10.53) ] &&
+ skip "Need MGS >= 2.10.53"
local nm1="nodemap1"
local nm2="nodemap2"
local nm1="nodemap1"
local nm2="nodemap2"
run_test 10b "delete range from the correct nodemap"
test_10c() { #LU-8912
run_test 10b "delete range from the correct nodemap"
test_10c() { #LU-8912
- [ $(lustre_version_code mgs) -lt $(version_code 2.10.57) ] &&
- skip "Need MGS >= 2.10.57" && return
+ [ "$MGS_VERSION" -lt $(version_code 2.10.57) ] &&
+ skip "Need MGS >= 2.10.57"
local nm="nodemap_lu8912"
local nid_range="10.210.[32-47].[0-255]@o2ib3"
local nm="nodemap_lu8912"
local nid_range="10.210.[32-47].[0-255]@o2ib3"
run_test 10c "verfify contiguous range support"
test_10d() { #LU-8913
run_test 10c "verfify contiguous range support"
test_10d() { #LU-8913
- [ $(lustre_version_code mgs) -lt $(version_code 2.10.59) ] &&
- skip "Need MGS >= 2.10.59" && return
+ [ "$MGS_VERSION" -lt $(version_code 2.10.59) ] &&
+ skip "Need MGS >= 2.10.59"
local nm="nodemap_lu8913"
local nid_range="*@o2ib3"
local nm="nodemap_lu8913"
local nid_range="*@o2ib3"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
- remote_mgs_nodsh && skip "remote MGS with nodsh" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
- return
+ remote_mgs_nodsh && skip "remote MGS with nodsh"
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53"
nodemap_version_check () {
remote_mgs_nodsh && skip "remote MGS with nodsh" && return 1
nodemap_version_check () {
remote_mgs_nodsh && skip "remote MGS with nodsh" && return 1
- [ $(lustre_version_code mgs) -lt $(version_code 2.5.53) ] &&
- skip "No nodemap on $(lustre_build_version mgs) MGS < 2.5.53" &&
+ [ "$MGS_VERSION" -lt $(version_code 2.5.53) ] &&
+ skip "No nodemap on $MGS_VERSION MGS < 2.5.53" &&
test_17() {
if $SHARED_KEY &&
test_17() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
test_18() {
if $SHARED_KEY &&
test_18() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
test_19() {
if $SHARED_KEY &&
test_19() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
test_20() {
if $SHARED_KEY &&
test_20() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
test_21() {
if $SHARED_KEY &&
test_21() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
test_22() {
if $SHARED_KEY &&
test_22() {
if $SHARED_KEY &&
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.55) ]; then
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.55) ]; then
skip "Need MDS >= 2.11.55"
fi
skip "Need MDS >= 2.11.55"
fi
run_test 23a "test mapped regular ACLs"
test_23b() { #LU-9929
run_test 23a "test mapped regular ACLs"
test_23b() { #LU-9929
- [ $num_clients -lt 2 ] && skip "Need 2 clients at least" && return
- [ $(lustre_version_code mgs) -lt $(version_code 2.10.53) ] &&
- skip "Need MGS >= 2.10.53" && return
+ [ $num_clients -lt 2 ] && skip "Need 2 clients at least"
+ [ "$MGS_VERSION" -lt $(version_code 2.10.53) ] &&
+ skip "Need MGS >= 2.10.53"
export SK_UNIQUE_NM=true
nodemap_test_setup
export SK_UNIQUE_NM=true
nodemap_test_setup
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.50) ] &&
- skip "Need MDS >= 2.11.50" && return
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.50) ] &&
+ skip "Need MDS >= 2.11.50"
for nm in "default" "c0"; do
local subdir="subdir_${nm}"
for nm in "default" "c0"; do
local subdir="subdir_${nm}"
run_test 27a "test fileset in various nodemaps"
test_27b() { #LU-10703
run_test 27a "test fileset in various nodemaps"
test_27b() { #LU-10703
- [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.50) ] &&
- skip "Need MDS >= 2.11.50" && return
- [[ $MDSCOUNT -lt 2 ]] && skip "needs >= 2 MDTs" && return
+ [ "$MDS1_VERSION" -lt $(version_code 2.11.50) ] &&
+ skip "Need MDS >= 2.11.50"
+ [[ $MDSCOUNT -lt 2 ]] && skip "needs >= 2 MDTs"
nodemap_test_setup
trap nodemap_test_cleanup EXIT
nodemap_test_setup
trap nodemap_test_cleanup EXIT