From f891723d30a2b0fe4fc43d8e8e852909aae0a3e3 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Tue, 1 Aug 2023 15:18:12 -0600 Subject: [PATCH] LU-12597 tests: allow comma-separated node lists Allow some functions that deal with space-separated node lists to also accept comma-separated node lists, to prepare for a future where $(osts_nodes) and $(mdts_nodes) will return comma-separated lists already, instead of having to call comma_list each time. Signed-off-by: Andreas Dilger Change-Id: I36e5a2a0814fd6564ca560ad93fdaba0423ebbe5 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54340 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Arshad Hussain Reviewed-by: Jian Yu Reviewed-by: Oleg Drokin --- lustre/tests/test-framework.sh | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index ad66b43..8f2ec10 100755 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -1265,13 +1265,12 @@ runas_su() { check_gss_daemon_nodes() { local list=$1 - local dname=$2 + local dname=$(basename "$2" | awk '{print $1}') local loopmax=10 local loop local node local ret - dname=$(basename "$dname" | awk '{print $1}') do_nodesv $list "num=0; for proc in \\\$(pgrep $dname); do [ \\\$(ps -o ppid= -p \\\$proc) -ne 1 ] || ((num++)) @@ -1299,11 +1298,10 @@ fi; " check_gss_daemon_facet() { local facet=$1 - local dname=$2 + local dname=$(basename "$2" | awk '{print $1}') + local num=$(do_facet $facet ps -o cmd -C $dname | grep -c $dname) - dname=$(basename "$dname" | awk '{print $1}') - num=$(do_facet $facet ps -o cmd -C $dname | grep $dname | wc -l) - if [ $num -ne 1 ]; then + if (( $num != 1 )); then echo "$num instance of $dname on $facet" return 1 fi @@ -6459,7 +6457,7 @@ dump_file_contents() { "Invalid parameters for dump_file_contents()" return 1 fi - for node in ${nodes}; do + for node in ${nodes//,/ }; do do_node $node "for i in \\\$(find $dir -type f); do echo ====\\\${i}=======================; cat \\\${i}; @@ -6479,7 +6477,7 @@ dump_command_output() { return 1 fi - for node in ${nodes}; do + for node in ${nodes//,/ }; do do_node $node "echo ====${cmd}=======================; $cmd" >> ${logname}.${node}.log done @@ -6619,12 +6617,13 @@ no_dsh() { comma_list() { # echo is used to convert newlines to spaces, since it doesn't # introduce a trailing space as using "tr '\n' ' '" does - echo $(tr -s " " "\n" <<< $* | sort -b -u) | tr ' ' ',' + echo $(tr -s ", " "\n" <<< $* | sort -b -u) | tr ' ' ',' } list_member () { local list=$1 local item=$2 + echo $list | grep -qw $item } @@ -6676,7 +6675,7 @@ absolute_path() { } get_facets () { - local types=${1:-"OST MDS MGS"} + local types=${*:-"OST MDS MGS"} local list="" @@ -7809,15 +7808,20 @@ require_dsh_mds() return 0 } -remote_ost () +# return true if any OST is on a remote node +remote_ost() { + local osts=$(osts_nodes) local node - for node in $(osts_nodes) ; do + + for node in ${osts//,/ }; do remote_node $node && return 0 done + return 1 } +# return true if any OST is on a remote node and no remote shell is configured remote_ost_nodsh() { [ -n "$CLIENTONLY" ] && return 0 || true @@ -7861,7 +7865,7 @@ facets_nodes () { nodes="$nodes $(facet_active_host $facet)" done - nodes_sort=$(for i in $nodes; do echo $i; done | sort -u) + nodes_sort=$(for i in ${nodes//,/ }; do echo $i; done | sort -u) echo -n $nodes_sort } @@ -7893,7 +7897,7 @@ nodes_list () { nodes="$nodes $(facets_nodes $(get_facets))" fi - nodes_sort=$(for i in $nodes; do echo $i; done | sort -u) + nodes_sort=$(for i in ${nodes//,/ }; do echo $i; done | sort -u) echo -n $nodes_sort } @@ -7948,7 +7952,7 @@ all_server_nodes () { nodes="$mgs_HOST $mgsfailover_HOST $(all_mdts_nodes) $(all_osts_nodes)" - nodes_sort=$(for i in $nodes; do echo $i; done | sort -u) + nodes_sort=$(for i in ${nodes//,/ }; do echo $i; done | sort -u) echo -n $nodes_sort } @@ -7965,7 +7969,7 @@ all_nodes () { nodes="$nodes $(all_server_nodes)" fi - nodes_sort=$(for i in $nodes; do echo $i; done | sort -u) + nodes_sort=$(for i in ${nodes//,/ }; do echo $i; done | sort -u) echo -n $nodes_sort } @@ -8030,7 +8034,7 @@ check_versions () { get_node_count() { local nodes="$@" - echo $nodes | wc -w || true + echo ${nodes//,/ } | wc -w || true } mixed_mdt_devs () { -- 1.8.3.1