From 4f5b4bd9dfb7690359dbae6b687f97946761dd22 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Fri, 26 Aug 2022 09:16:49 +1000 Subject: [PATCH] ctdb-tests: Reformat remaining test stubs with "shfmt -w -p -i 0 -fn" Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs Autobuild-User(master): Amitay Isaacs Autobuild-Date(master): Fri Sep 16 04:35:09 UTC 2022 on sn-devel-184 --- ctdb/tests/UNIT/eventscripts/stubs/ctdb | 1006 ++++++++++---------- ctdb/tests/UNIT/eventscripts/stubs/ctdb_killtcp | 2 +- ctdb/tests/UNIT/eventscripts/stubs/ctdb_lvs | 31 +- ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw | 68 +- ctdb/tests/UNIT/eventscripts/stubs/date | 8 +- ctdb/tests/UNIT/eventscripts/stubs/df | 22 +- ctdb/tests/UNIT/eventscripts/stubs/ethtool | 4 +- ctdb/tests/UNIT/eventscripts/stubs/exportfs | 16 +- ctdb/tests/UNIT/eventscripts/stubs/gstack | 6 +- ctdb/tests/UNIT/eventscripts/stubs/ipvsadm | 83 +- ctdb/tests/UNIT/eventscripts/stubs/multipath | 24 +- ctdb/tests/UNIT/eventscripts/stubs/pidof | 5 +- ctdb/tests/UNIT/eventscripts/stubs/ps | 14 +- ctdb/tests/UNIT/eventscripts/stubs/rm | 4 +- ctdb/tests/UNIT/eventscripts/stubs/rpcinfo | 155 +-- ctdb/tests/UNIT/eventscripts/stubs/service | 55 +- ctdb/tests/UNIT/eventscripts/stubs/sleep | 10 +- ctdb/tests/UNIT/eventscripts/stubs/smnotify | 47 +- ctdb/tests/UNIT/eventscripts/stubs/ss | 117 +-- ctdb/tests/UNIT/eventscripts/stubs/stat | 20 +- ctdb/tests/UNIT/eventscripts/stubs/tdb_mutex_check | 8 +- ctdb/tests/UNIT/eventscripts/stubs/tdbdump | 10 +- ctdb/tests/UNIT/eventscripts/stubs/tdbtool | 69 +- ctdb/tests/UNIT/eventscripts/stubs/testparm | 74 +- ctdb/tests/UNIT/eventscripts/stubs/timeout | 8 +- ctdb/tests/UNIT/eventscripts/stubs/wbinfo | 4 +- 26 files changed, 972 insertions(+), 898 deletions(-) rewrite ctdb/tests/UNIT/eventscripts/stubs/ctdb (65%) rewrite ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw (86%) rewrite ctdb/tests/UNIT/eventscripts/stubs/rpcinfo (65%) rewrite ctdb/tests/UNIT/eventscripts/stubs/tdbtool (68%) diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ctdb b/ctdb/tests/UNIT/eventscripts/stubs/ctdb dissimilarity index 65% index a1d1e2f4759..4d8f3b68ef1 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ctdb +++ b/ctdb/tests/UNIT/eventscripts/stubs/ctdb @@ -1,502 +1,504 @@ -#!/bin/sh - -prog="ctdb" - -# Print a message and exit. -die () -{ - echo "$1" >&2 ; exit "${2:-1}" -} - -not_implemented_exit_code=1 - -usage () -{ - cat >&2 <&2 - exit $not_implemented_exit_code -} - -verbose=false -machine_readable=false -nodespec="" - -args="" - -# Options and command argument can appear in any order, so when -# getopts thinks it is done, process any non-option arguments and go -# around again. -while [ $# -gt 0 ] ; do - while getopts "Xvhn:?" opt ; do - case "$opt" in - X) machine_readable=true ;; - v) verbose=true ;; - n) nodespec="$OPTARG" ;; - \?|*) usage ;; - esac - done - shift $((OPTIND - 1)) - - # Anything left over must be a non-option arg - if [ $# -gt 0 ] ; then - args="${args}${args:+ }${1}" - shift - fi -done - -[ -n "$args" ] || usage -# Want word splitting -# shellcheck disable=SC2086 -set -- $args - -setup_tickles () -{ - # Make sure tickles file exists. - tickles_file="${CTDB_TEST_TMP_DIR}/fake-ctdb/tickles" - mkdir -p "$(dirname "$tickles_file")" - touch "$tickles_file" -} - -ctdb_gettickles () -{ - _ip="$1" - _port="$2" - - setup_tickles - - echo "|source ip|port|destination ip|port|" - while read -r _src _dst ; do - if [ -z "$_ip" ] || [ "$_ip" = "${_dst%:*}" ] ; then - if [ -z "$_port" ] || [ "$_port" = "${_dst##*:}" ] ; then - echo "|${_src%:*}|${_src##*:}|${_dst%:*}|${_dst##*:}|" - fi - fi - done <"$tickles_file" -} - -ctdb_addtickle () -{ - _src="$1" - _dst="$2" - - setup_tickles - - if [ -n "$_dst" ] ; then - echo "${_src} ${_dst}" >>"$tickles_file" - else - cat >>"$tickles_file" - fi -} - -ctdb_deltickle () -{ - _src="$1" - _dst="$2" - - setup_tickles - - if [ -n "$_dst" ] ; then - _t=$(grep -F -v "${_src} $${_dst}" "$tickles_file") - else - _t=$(cat "$tickles_file") - while read -r _src _dst ; do - _t=$(echo "$_t" | grep -F -v "${_src} ${_dst}") - done - fi - echo "$_t" >"$tickles_file" -} - -parse_nodespec () -{ - if [ "$nodespec" = "all" ] ; then - nodes="$(seq 0 $((FAKE_CTDB_NUMNODES - 1)) )" - elif [ -n "$nodespec" ] ; then - nodes="$(echo "$nodespec" | sed -e 's@,@ @g')" - else - nodes=$(ctdb_pnn) - fi -} - -# For testing backward compatibility... -for i in $CTDB_NOT_IMPLEMENTED ; do - if [ "$i" = "$1" ] ; then - not_implemented "$i" - fi -done - -ctdb_pnn () -{ - # Defaults to 0 - echo "${FAKE_CTDB_PNN:-0}" -} - -###################################################################### - -FAKE_CTDB_NODE_STATE="$FAKE_CTDB_STATE/node-state" -FAKE_CTDB_NODES_DISABLED="$FAKE_CTDB_NODE_STATE/0x4" - -###################################################################### - -# NOTE: all nodes share public addresses file - -FAKE_CTDB_IP_LAYOUT="$FAKE_CTDB_STATE/ip-layout" - -ip_reallocate () -{ - touch "$FAKE_CTDB_IP_LAYOUT" - - # ShellCheck doesn't understand this flock pattern - # shellcheck disable=SC2094 - ( - flock 0 - - _pa="${CTDB_BASE}/public_addresses" - - if [ ! -s "$FAKE_CTDB_IP_LAYOUT" ] ; then - sed -n -e 's@^\([^#][^/]*\)/.*@\1 -1@p' \ - "$_pa" >"$FAKE_CTDB_IP_LAYOUT" - fi - - _t="${FAKE_CTDB_IP_LAYOUT}.new" - - _flags="" - for _i in $(seq 0 $((FAKE_CTDB_NUMNODES - 1)) ) ; do - if ls "$FAKE_CTDB_STATE/node-state/"*"/$_i" >/dev/null 2>&1 ; then - # Have non-zero flags - _this=0 - for _j in "$FAKE_CTDB_STATE/node-state/"*"/$_i" ; do - _tf="${_j%/*}" # dirname - _f="${_tf##*/}" # basename - _this=$(( _this | _f )) - done - else - _this="0" - fi - _flags="${_flags}${_flags:+,}${_this}" - done - CTDB_TEST_LOGLEVEL=NOTICE \ - "ctdb_takeover_tests" \ - "ipalloc" "$_flags" <"$FAKE_CTDB_IP_LAYOUT" | - sort >"$_t" - mv "$_t" "$FAKE_CTDB_IP_LAYOUT" - ) <"$FAKE_CTDB_IP_LAYOUT" -} - -ctdb_ip () -{ - # If nobody has done any IP-fu then generate a layout. - [ -f "$FAKE_CTDB_IP_LAYOUT" ] || ip_reallocate - - _mypnn=$(ctdb_pnn) - - if $machine_readable ; then - if $verbose ; then - echo "|Public IP|Node|ActiveInterface|AvailableInterfaces|ConfiguredInterfaces|" - else - echo "|Public IP|Node|" - fi - else - echo "Public IPs on node ${_mypnn}" - fi - - # Join public addresses file with $FAKE_CTDB_IP_LAYOUT, and - # process output line by line... - _pa="${CTDB_BASE}/public_addresses" - sed -e 's@/@ @' "$_pa" | sort | join - "$FAKE_CTDB_IP_LAYOUT" | - while read -r _ip _ _ifaces _pnn ; do - if $verbose ; then - # If more than 1 interface, assume all addresses are on the 1st. - _first_iface="${_ifaces%%,*}" - # Only show interface if address is on this node. - _my_iface="" - if [ "$_pnn" = "$_mypnn" ]; then - _my_iface="$_first_iface" - fi - if $machine_readable ; then - echo "|${_ip}|${_pnn}|${_my_iface}|${_first_iface}|${_ifaces}|" - else - echo "${_ip} node[${_pnn}] active[${_my_iface}] available[${_first_iface}] configured[[${_ifaces}]" - fi - else - if $machine_readable ; then - echo "|${_ip}|${_pnn}|" - else - echo "${_ip} ${_pnn}" - fi - fi - done -} - -ctdb_moveip () -{ - _ip="$1" - _target="$2" - - ip_reallocate # should be harmless and ensures we have good state - - # ShellCheck doesn't understand this flock pattern - # shellcheck disable=SC2094 - ( - flock 0 - - _t="${FAKE_CTDB_IP_LAYOUT}.new" - - while read -r _i _pnn ; do - if [ "$_ip" = "$_i" ] ; then - echo "$_i $_target" - else - echo "$_i $_pnn" - fi - done | sort >"$_t" - mv "$_t" "$FAKE_CTDB_IP_LAYOUT" - ) <"$FAKE_CTDB_IP_LAYOUT" -} - -###################################################################### - -ctdb_enable () -{ - parse_nodespec - - for _i in $nodes ; do - rm -f "${FAKE_CTDB_NODES_DISABLED}/${_i}" - done - - ip_reallocate -} - -ctdb_disable () -{ - parse_nodespec - - for _i in $nodes ; do - mkdir -p "$FAKE_CTDB_NODES_DISABLED" - touch "${FAKE_CTDB_NODES_DISABLED}/${_i}" - done - - ip_reallocate -} - -###################################################################### - -ctdb_shutdown () -{ - echo "CTDB says BYE!" -} - -###################################################################### - -# This is only used by the NAT and LVS gateway code at the moment, so -# use a hack. Assume that $CTDB_NATGW_NODES or $CTDB_LVS_NODES -# contains all nodes in the cluster (which is what current tests -# assume). Use the PNN to find the address from this file. The NAT -# gateway code only used the address, so just mark the node healthy. -ctdb_nodestatus () -{ - echo '|Node|IP|Disconnected|Banned|Disabled|Unhealthy|Stopped|Inactive|PartiallyOnline|ThisNode|' - _line=$(( FAKE_CTDB_PNN + 1 )) - _ip=$(sed -e "${_line}p" "${CTDB_NATGW_NODES:-${CTDB_LVS_NODES}}") - echo "|${FAKE_CTDB_PNN}|${_ip}|0|0|0|0|0|0|0|Y|" -} - -###################################################################### - -ctdb_setvar () -{ - _var="$1" - - for _i in $FAKE_CTDB_TUNABLES_OK ; do - if [ "$_var" = "$_i" ] ; then - return 0 - fi - done - - for _i in $FAKE_CTDB_TUNABLES_OBSOLETE ; do - if [ "$_var" = "$_i" ] ; then - echo "Setting obsolete tunable variable '${_var}'" - return 0 - fi - done - - echo "Unable to set tunable variable '${_var}'" - return 1 -} - -###################################################################### - -_t_setup () -{ - _t_dir="${CTDB_TEST_TMP_DIR}/fake-ctdb/fake-tdb/$1" - mkdir -p "$_t_dir" -} - -_t_put () -{ - echo "$2" >"${_t_dir}/$1" -} - -_t_get () -{ - cat "${_t_dir}/$1" -} - -_t_del () -{ - rm -f "${_t_dir}/$1" -} - -ctdb_pstore () -{ - _t_setup "$1" - _t_put "$2" "$3" -} - -ctdb_pdelete () -{ - _t_setup "$1" - _t_del "$2" -} - -ctdb_pfetch () -{ - _t_setup "$1" - _t_get "$2" >"$3" 2>/dev/null -} - -ctdb_ptrans () -{ - _t_setup "$1" - - while IFS="" read -r _line ; do - _k=$(echo "$_line" | sed -n -e 's@^"\([^"]*\)" "[^"]*"$@\1@p') - _v=$(echo "$_line" | sed -e 's@^"[^"]*" "\([^"]*\)"$@\1@') - [ -n "$_k" ] || die "ctdb ptrans: bad line \"${_line}\"" - if [ -n "$_v" ] ; then - _t_put "$_k" "$_v" - else - _t_del "$_k" - fi - done -} - -ctdb_catdb () -{ - _t_setup "$1" - - # This will break on keys with spaces but we don't have any of - # those yet. - _count=0 - for _i in "${_t_dir}/"* ; do - [ -r "$_i" ] || continue - _k="${_i##*/}" # basename - _v=$(_t_get "$_k") - _kn=$(printf '%s' "$_k" | wc -c) - _vn=$(printf '%s' "$_v" | wc -c) - cat </dev/null 2>&1 ; then - "$func" "$@" -else - not_implemented "$cmd" -fi +#!/bin/sh + +prog="ctdb" + +# Print a message and exit. +die() +{ + echo "$1" >&2 + exit "${2:-1}" +} + +not_implemented_exit_code=1 + +usage() +{ + cat >&2 <&2 + exit $not_implemented_exit_code +} + +verbose=false +machine_readable=false +nodespec="" + +args="" + +# Options and command argument can appear in any order, so when +# getopts thinks it is done, process any non-option arguments and go +# around again. +while [ $# -gt 0 ]; do + while getopts "Xvhn:?" opt; do + case "$opt" in + X) machine_readable=true ;; + v) verbose=true ;; + n) nodespec="$OPTARG" ;; + \? | *) usage ;; + esac + done + shift $((OPTIND - 1)) + + # Anything left over must be a non-option arg + if [ $# -gt 0 ]; then + args="${args}${args:+ }${1}" + shift + fi +done + +[ -n "$args" ] || usage +# Want word splitting +# shellcheck disable=SC2086 +set -- $args + +setup_tickles() +{ + # Make sure tickles file exists. + tickles_file="${CTDB_TEST_TMP_DIR}/fake-ctdb/tickles" + mkdir -p "$(dirname "$tickles_file")" + touch "$tickles_file" +} + +ctdb_gettickles() +{ + _ip="$1" + _port="$2" + + setup_tickles + + echo "|source ip|port|destination ip|port|" + while read -r _src _dst; do + if [ -z "$_ip" ] || [ "$_ip" = "${_dst%:*}" ]; then + if [ -z "$_port" ] || [ "$_port" = "${_dst##*:}" ]; then + echo "|${_src%:*}|${_src##*:}|${_dst%:*}|${_dst##*:}|" + fi + fi + done <"$tickles_file" +} + +ctdb_addtickle() +{ + _src="$1" + _dst="$2" + + setup_tickles + + if [ -n "$_dst" ]; then + echo "${_src} ${_dst}" >>"$tickles_file" + else + cat >>"$tickles_file" + fi +} + +ctdb_deltickle() +{ + _src="$1" + _dst="$2" + + setup_tickles + + if [ -n "$_dst" ]; then + _t=$(grep -F -v "${_src} $${_dst}" "$tickles_file") + else + _t=$(cat "$tickles_file") + while read -r _src _dst; do + _t=$(echo "$_t" | grep -F -v "${_src} ${_dst}") + done + fi + echo "$_t" >"$tickles_file" +} + +parse_nodespec() +{ + if [ "$nodespec" = "all" ]; then + nodes="$(seq 0 $((FAKE_CTDB_NUMNODES - 1)))" + elif [ -n "$nodespec" ]; then + nodes="$(echo "$nodespec" | sed -e 's@,@ @g')" + else + nodes=$(ctdb_pnn) + fi +} + +# For testing backward compatibility... +for i in $CTDB_NOT_IMPLEMENTED; do + if [ "$i" = "$1" ]; then + not_implemented "$i" + fi +done + +ctdb_pnn() +{ + # Defaults to 0 + echo "${FAKE_CTDB_PNN:-0}" +} + +###################################################################### + +FAKE_CTDB_NODE_STATE="$FAKE_CTDB_STATE/node-state" +FAKE_CTDB_NODES_DISABLED="$FAKE_CTDB_NODE_STATE/0x4" + +###################################################################### + +# NOTE: all nodes share public addresses file + +FAKE_CTDB_IP_LAYOUT="$FAKE_CTDB_STATE/ip-layout" + +ip_reallocate() +{ + touch "$FAKE_CTDB_IP_LAYOUT" + + # ShellCheck doesn't understand this flock pattern + # shellcheck disable=SC2094 + ( + flock 0 + + _pa="${CTDB_BASE}/public_addresses" + + if [ ! -s "$FAKE_CTDB_IP_LAYOUT" ]; then + sed -n -e 's@^\([^#][^/]*\)/.*@\1 -1@p' \ + "$_pa" >"$FAKE_CTDB_IP_LAYOUT" + fi + + _t="${FAKE_CTDB_IP_LAYOUT}.new" + + _flags="" + for _i in $(seq 0 $((FAKE_CTDB_NUMNODES - 1))); do + if ls "$FAKE_CTDB_STATE/node-state/"*"/$_i" >/dev/null 2>&1; then + # Have non-zero flags + _this=0 + for _j in "$FAKE_CTDB_STATE/node-state/"*"/$_i"; do + _tf="${_j%/*}" # dirname + _f="${_tf##*/}" # basename + _this=$((_this | _f)) + done + else + _this="0" + fi + _flags="${_flags}${_flags:+,}${_this}" + done + CTDB_TEST_LOGLEVEL=NOTICE \ + "ctdb_takeover_tests" \ + "ipalloc" "$_flags" <"$FAKE_CTDB_IP_LAYOUT" | + sort >"$_t" + mv "$_t" "$FAKE_CTDB_IP_LAYOUT" + ) <"$FAKE_CTDB_IP_LAYOUT" +} + +ctdb_ip() +{ + # If nobody has done any IP-fu then generate a layout. + [ -f "$FAKE_CTDB_IP_LAYOUT" ] || ip_reallocate + + _mypnn=$(ctdb_pnn) + + if $machine_readable; then + if $verbose; then + echo "|Public IP|Node|ActiveInterface|AvailableInterfaces|ConfiguredInterfaces|" + else + echo "|Public IP|Node|" + fi + else + echo "Public IPs on node ${_mypnn}" + fi + + # Join public addresses file with $FAKE_CTDB_IP_LAYOUT, and + # process output line by line... + _pa="${CTDB_BASE}/public_addresses" + sed -e 's@/@ @' "$_pa" | sort | join - "$FAKE_CTDB_IP_LAYOUT" | + while read -r _ip _ _ifaces _pnn; do + if $verbose; then + # If more than 1 interface, assume all addresses are on the 1st. + _first_iface="${_ifaces%%,*}" + # Only show interface if address is on this node. + _my_iface="" + if [ "$_pnn" = "$_mypnn" ]; then + _my_iface="$_first_iface" + fi + if $machine_readable; then + echo "|${_ip}|${_pnn}|${_my_iface}|${_first_iface}|${_ifaces}|" + else + echo "${_ip} node[${_pnn}] active[${_my_iface}] available[${_first_iface}] configured[[${_ifaces}]" + fi + else + if $machine_readable; then + echo "|${_ip}|${_pnn}|" + else + echo "${_ip} ${_pnn}" + fi + fi + done +} + +ctdb_moveip() +{ + _ip="$1" + _target="$2" + + ip_reallocate # should be harmless and ensures we have good state + + # ShellCheck doesn't understand this flock pattern + # shellcheck disable=SC2094 + ( + flock 0 + + _t="${FAKE_CTDB_IP_LAYOUT}.new" + + while read -r _i _pnn; do + if [ "$_ip" = "$_i" ]; then + echo "$_i $_target" + else + echo "$_i $_pnn" + fi + done | sort >"$_t" + mv "$_t" "$FAKE_CTDB_IP_LAYOUT" + ) <"$FAKE_CTDB_IP_LAYOUT" +} + +###################################################################### + +ctdb_enable() +{ + parse_nodespec + + for _i in $nodes; do + rm -f "${FAKE_CTDB_NODES_DISABLED}/${_i}" + done + + ip_reallocate +} + +ctdb_disable() +{ + parse_nodespec + + for _i in $nodes; do + mkdir -p "$FAKE_CTDB_NODES_DISABLED" + touch "${FAKE_CTDB_NODES_DISABLED}/${_i}" + done + + ip_reallocate +} + +###################################################################### + +ctdb_shutdown() +{ + echo "CTDB says BYE!" +} + +###################################################################### + +# This is only used by the NAT and LVS gateway code at the moment, so +# use a hack. Assume that $CTDB_NATGW_NODES or $CTDB_LVS_NODES +# contains all nodes in the cluster (which is what current tests +# assume). Use the PNN to find the address from this file. The NAT +# gateway code only used the address, so just mark the node healthy. +ctdb_nodestatus() +{ + echo '|Node|IP|Disconnected|Banned|Disabled|Unhealthy|Stopped|Inactive|PartiallyOnline|ThisNode|' + _line=$((FAKE_CTDB_PNN + 1)) + _ip=$(sed -e "${_line}p" "${CTDB_NATGW_NODES:-${CTDB_LVS_NODES}}") + echo "|${FAKE_CTDB_PNN}|${_ip}|0|0|0|0|0|0|0|Y|" +} + +###################################################################### + +ctdb_setvar() +{ + _var="$1" + + for _i in $FAKE_CTDB_TUNABLES_OK; do + if [ "$_var" = "$_i" ]; then + return 0 + fi + done + + for _i in $FAKE_CTDB_TUNABLES_OBSOLETE; do + if [ "$_var" = "$_i" ]; then + echo "Setting obsolete tunable variable '${_var}'" + return 0 + fi + done + + echo "Unable to set tunable variable '${_var}'" + return 1 +} + +###################################################################### + +_t_setup() +{ + _t_dir="${CTDB_TEST_TMP_DIR}/fake-ctdb/fake-tdb/$1" + mkdir -p "$_t_dir" +} + +_t_put() +{ + echo "$2" >"${_t_dir}/$1" +} + +_t_get() +{ + cat "${_t_dir}/$1" +} + +_t_del() +{ + rm -f "${_t_dir}/$1" +} + +ctdb_pstore() +{ + _t_setup "$1" + _t_put "$2" "$3" +} + +ctdb_pdelete() +{ + _t_setup "$1" + _t_del "$2" +} + +ctdb_pfetch() +{ + _t_setup "$1" + _t_get "$2" >"$3" 2>/dev/null +} + +ctdb_ptrans() +{ + _t_setup "$1" + + while IFS="" read -r _line; do + _k=$(echo "$_line" | sed -n -e 's@^"\([^"]*\)" "[^"]*"$@\1@p') + _v=$(echo "$_line" | sed -e 's@^"[^"]*" "\([^"]*\)"$@\1@') + [ -n "$_k" ] || die "ctdb ptrans: bad line \"${_line}\"" + if [ -n "$_v" ]; then + _t_put "$_k" "$_v" + else + _t_del "$_k" + fi + done +} + +ctdb_catdb() +{ + _t_setup "$1" + + # This will break on keys with spaces but we don't have any of + # those yet. + _count=0 + for _i in "${_t_dir}/"*; do + [ -r "$_i" ] || continue + _k="${_i##*/}" # basename + _v=$(_t_get "$_k") + _kn=$(printf '%s' "$_k" | wc -c) + _vn=$(printf '%s' "$_v" | wc -c) + cat </dev/null 2>&1; then + "$func" "$@" +else + not_implemented "$cmd" +fi diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_killtcp b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_killtcp index 0f40058ee57..2a4bac441f4 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_killtcp +++ b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_killtcp @@ -3,7 +3,7 @@ # Only supports reading from stdin # shellcheck disable=SC2034 -iface="$1" # ignored +iface="$1" # ignored while read -r src dst; do sed -i -e "/^${dst} ${src}\$/d" "$FAKE_NETSTAT_TCP_ESTABLISHED_FILE" diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_lvs b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_lvs index 3a90d00581f..31f56e87036 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_lvs +++ b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_lvs @@ -3,30 +3,31 @@ prog="ctdb_lvs" # Print a message and exit. -die () +die() { - echo "$1" >&2 ; exit "${2:-1}" + echo "$1" >&2 + exit "${2:-1}" } not_implemented_exit_code=1 -usage () +usage() { - cat >&2 <&2 <&2 - exit $not_implemented_exit_code + echo "${prog}: command \"$1\" not implemented in stub" >&2 + exit $not_implemented_exit_code } -ctdb_lvs_leader () +ctdb_lvs_leader() { - if [ -n "$FAKE_CTDB_LVS_LEADER" ] ; then + if [ -n "$FAKE_CTDB_LVS_LEADER" ]; then echo "$FAKE_CTDB_LVS_LEADER" return 0 else @@ -34,10 +35,10 @@ ctdb_lvs_leader () fi } -ctdb_lvs_list () +ctdb_lvs_list() { _pnn=0 - while read -r _ip _ ; do + while read -r _ip _; do echo "${_pnn} ${_ip}" _pnn=$((_pnn + 1)) done <"$CTDB_LVS_NODES" @@ -46,7 +47,7 @@ ctdb_lvs_list () ###################################################################### case "$1" in - leader) ctdb_lvs_leader "$@" ;; - list) ctdb_lvs_list "$@" ;; - *) not_implemented "$1" ;; +leader) ctdb_lvs_leader "$@" ;; +list) ctdb_lvs_list "$@" ;; +*) not_implemented "$1" ;; esac diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw dissimilarity index 86% index 83ba59c555d..22a2191c5c0 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw +++ b/ctdb/tests/UNIT/eventscripts/stubs/ctdb_natgw @@ -1,34 +1,34 @@ -#!/bin/sh - -prog="ctdb_natgw" - -not_implemented_exit_code=1 - -not_implemented () -{ - echo "${prog}: command \"$1\" not implemented in stub" >&2 - exit $not_implemented_exit_code -} - -ctdb_natgw_leader () -{ - [ -r "$CTDB_NATGW_NODES" ] || \ - die "error: missing CTDB_NATGW_NODES=${CTDB_NATGW_NODES}" - - # Determine the leader node - _leader="-1 0.0.0.0" - _pnn=0 - while read -r _ip ; do - if [ "$FAKE_CTDB_NATGW_LEADER" = "$_ip" ] ; then - _leader="${_pnn} ${_ip}" - break - fi - _pnn=$((_pnn + 1)) - done <"$CTDB_NATGW_NODES" - echo "$_leader" -} - -case "$1" in - leader) ctdb_natgw_leader "$@" ;; - *) not_implemented "$1" ;; -esac +#!/bin/sh + +prog="ctdb_natgw" + +not_implemented_exit_code=1 + +not_implemented() +{ + echo "${prog}: command \"$1\" not implemented in stub" >&2 + exit $not_implemented_exit_code +} + +ctdb_natgw_leader() +{ + [ -r "$CTDB_NATGW_NODES" ] || + die "error: missing CTDB_NATGW_NODES=${CTDB_NATGW_NODES}" + + # Determine the leader node + _leader="-1 0.0.0.0" + _pnn=0 + while read -r _ip; do + if [ "$FAKE_CTDB_NATGW_LEADER" = "$_ip" ]; then + _leader="${_pnn} ${_ip}" + break + fi + _pnn=$((_pnn + 1)) + done <"$CTDB_NATGW_NODES" + echo "$_leader" +} + +case "$1" in +leader) ctdb_natgw_leader "$@" ;; +*) not_implemented "$1" ;; +esac diff --git a/ctdb/tests/UNIT/eventscripts/stubs/date b/ctdb/tests/UNIT/eventscripts/stubs/date index 2f470a8156f..8319c9c2fdf 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/date +++ b/ctdb/tests/UNIT/eventscripts/stubs/date @@ -1,7 +1,7 @@ #!/bin/sh -if [ "$FAKE_DATE_OUTPUT" ] ; then - echo "$FAKE_DATE_OUTPUT" -else - /bin/date "$@" +if [ "$FAKE_DATE_OUTPUT" ]; then + echo "$FAKE_DATE_OUTPUT" +else + /bin/date "$@" fi diff --git a/ctdb/tests/UNIT/eventscripts/stubs/df b/ctdb/tests/UNIT/eventscripts/stubs/df index 8abad178ffc..858f0ef4e2f 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/df +++ b/ctdb/tests/UNIT/eventscripts/stubs/df @@ -1,17 +1,17 @@ #!/bin/sh -usage () +usage() { - echo "usage: df [-kP] []" - exit 1 + echo "usage: df [-kP] []" + exit 1 } -if [ "$1" = "-kP" ] ; then - shift +if [ "$1" = "-kP" ]; then + shift fi case "$1" in - -*) usage ;; +-*) usage ;; esac fs="${1:-/}" @@ -19,13 +19,13 @@ fs="${1:-/}" # Anything starting with CTDB_DBDIR_BASE gets canonicalised to # CTDB_DBDIR_BASE. This helps with the setting of defaults for the # filesystem checks. -if [ "${fs#"${CTDB_DBDIR_BASE}"}" != "$fs" ] ; then - fs="$CTDB_DBDIR_BASE" +if [ "${fs#"${CTDB_DBDIR_BASE}"}" != "$fs" ]; then + fs="$CTDB_DBDIR_BASE" fi # A default, for tests that don't initialise this... -if [ -z "$FAKE_FS_USE" ] ; then - FAKE_FS_USE=10 +if [ -z "$FAKE_FS_USE" ]; then + FAKE_FS_USE=10 fi echo "Filesystem 1024-blocks Used Available Capacity Mounted on" @@ -35,4 +35,4 @@ used=$((blocks * FAKE_FS_USE / 100)) available=$((blocks - used)) printf "%-36s %10d %10d %10d %10d%% %s\n" \ - "/dev/sda1" "$blocks" "$used" "$available" "$FAKE_FS_USE" "$fs" + "/dev/sda1" "$blocks" "$used" "$available" "$FAKE_FS_USE" "$fs" diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ethtool b/ctdb/tests/UNIT/eventscripts/stubs/ethtool index bd173f438f7..3d4b889fb07 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ethtool +++ b/ctdb/tests/UNIT/eventscripts/stubs/ethtool @@ -2,8 +2,8 @@ link="yes" -if [ -f "${FAKE_ETHTOOL_LINK_DOWN}/${1}" ] ; then - link="no" +if [ -f "${FAKE_ETHTOOL_LINK_DOWN}/${1}" ]; then + link="no" fi # Expect to add more fields later. diff --git a/ctdb/tests/UNIT/eventscripts/stubs/exportfs b/ctdb/tests/UNIT/eventscripts/stubs/exportfs index 46c65225be1..e0970c5fded 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/exportfs +++ b/ctdb/tests/UNIT/eventscripts/stubs/exportfs @@ -2,12 +2,12 @@ opts="10.0.0.0/16(rw,async,insecure,no_root_squash,no_subtree_check)" -for i in $FAKE_SHARES ; do - # Directories longer than 15 characters are printed on their own - # line. - if [ ${#i} -ge 15 ] ; then - printf '%s\n\t\t%s\n' "$i" "$opts" - else - printf '%s\t%s\n' "$i" "$opts" - fi +for i in $FAKE_SHARES; do + # Directories longer than 15 characters are printed on their own + # line. + if [ ${#i} -ge 15 ]; then + printf '%s\n\t\t%s\n' "$i" "$opts" + else + printf '%s\t%s\n' "$i" "$opts" + fi done diff --git a/ctdb/tests/UNIT/eventscripts/stubs/gstack b/ctdb/tests/UNIT/eventscripts/stubs/gstack index 9ee41cca65a..1dec2354efb 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/gstack +++ b/ctdb/tests/UNIT/eventscripts/stubs/gstack @@ -2,12 +2,12 @@ pid="$1" -if [ -n "$FAKE_PS_MAP" ] ; then +if [ -n "$FAKE_PS_MAP" ]; then command=$(echo "$FAKE_PS_MAP" | - awk -v pid="$pid" '$1 == pid { print $2 }') + awk -v pid="$pid" '$1 == pid { print $2 }') fi -if [ -z "$command" ] ; then +if [ -z "$command" ]; then command="smbd" fi diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ipvsadm b/ctdb/tests/UNIT/eventscripts/stubs/ipvsadm index 226d7b4d9a8..31bdf2cfea2 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ipvsadm +++ b/ctdb/tests/UNIT/eventscripts/stubs/ipvsadm @@ -1,56 +1,66 @@ #!/bin/sh -die () +die() { echo "$1" >&2 exit "${2:-1}" } - [ -n "$FAKE_LVS_STATE_DIR" ] || die "FAKE_LVS_STATE_DIR not set" - service_address="" scheduling_method="wlc" persistent_timeout="" real_server="" forwarding_method="Route" -set_service_address () +set_service_address() { [ -z "$service_address" ] || die "multiple 'service-address' options specified" 2 case "$2" in - *:*) service_address="${1} ${2}" ;; - *) service_address="${1} ${2}:0" ;; + *:*) service_address="${1} ${2}" ;; + *) service_address="${1} ${2}:0" ;; esac } -set_real_server () +set_real_server() { [ -z "$real_server" ] || die "multiple 'real-server' options specified" 2 case "$1" in - *\]:*) real_server="${1}" ;; - *\]) real_server="${1}:0" ;; - *:*) real_server="${1}" ;; - *) real_server="${1}:0" ;; + *\]:*) real_server="${1}" ;; + *\]) real_server="${1}:0" ;; + *:*) real_server="${1}" ;; + *) real_server="${1}:0" ;; esac case "$real_server" in - 127.0.0.1:*|\[::1\]:*) forwarding_method="Local" ;; + 127.0.0.1:* | \[::1\]:*) forwarding_method="Local" ;; esac } case "$1" in -A) shift - while [ -n "$1" ] ; do + while [ -n "$1" ]; do case "$1" in - -t) set_service_address "TCP" "$2" ; shift 2 ;; - -u) set_service_address "UDP" "$2" ; shift 2 ;; - -s) scheduling_method="$2" ; shift 2 ;; - -p) persistent_timeout="persistent $2" ; shift 2 ;; + -t) + set_service_address "TCP" "$2" + shift 2 + ;; + -u) + set_service_address "UDP" "$2" + shift 2 + ;; + -s) + scheduling_method="$2" + shift 2 + ;; + -p) + persistent_timeout="persistent $2" + shift 2 + ;; *) die "Unsupported -A option $1" ;; esac done @@ -63,10 +73,16 @@ case "$1" in ;; -D) shift - while [ -n "$1" ] ; do + while [ -n "$1" ]; do case "$1" in - -t) set_service_address "TCP" "$2" ; shift 2 ;; - -u) set_service_address "UDP" "$2" ; shift 2 ;; + -t) + set_service_address "TCP" "$2" + shift 2 + ;; + -u) + set_service_address "UDP" "$2" + shift 2 + ;; *) die "Unsupported -D option $1" ;; esac done @@ -79,12 +95,24 @@ case "$1" in ;; -a) shift - while [ -n "$1" ] ; do + while [ -n "$1" ]; do case "$1" in - -t) set_service_address "TCP" "$2" ; shift 2 ;; - -u) set_service_address "UDP" "$2" ; shift 2 ;; - -r) set_real_server "$2" ; shift 2 ;; - -g) forwarding_method="Route" ; shift 1 ;; + -t) + set_service_address "TCP" "$2" + shift 2 + ;; + -u) + set_service_address "UDP" "$2" + shift 2 + ;; + -r) + set_real_server "$2" + shift 2 + ;; + -g) + forwarding_method="Route" + shift 1 + ;; *) die "Unsupported -A option $1" ;; esac done @@ -109,17 +137,18 @@ EOF [ -d "$d" ] || continue printf '%s ' "$d" cat "${d}/.info" - for f in "${d}/"* ; do + for f in "${d}/"*; do [ -f "$f" ] || continue read -r forwarding_method <"$f" printf " -> %-28s %-7s %-6s %-10s %-10s\n" \ - "${f##*/}" "$forwarding_method" 1 0 0 + "${f##*/}" "$forwarding_method" 1 0 0 done done ) ;; *) die "Unknown option $1" + ;; esac exit 0 diff --git a/ctdb/tests/UNIT/eventscripts/stubs/multipath b/ctdb/tests/UNIT/eventscripts/stubs/multipath index 64f95e7efb5..319b734e960 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/multipath +++ b/ctdb/tests/UNIT/eventscripts/stubs/multipath @@ -1,32 +1,32 @@ #!/bin/sh -usage () +usage() { - die "usage: ${0} -ll device" + die "usage: ${0} -ll device" } - + [ "$1" = "-ll" ] || usage shift [ $# -eq 1 ] || usage device="$1" -if [ -n "$FAKE_MULTIPATH_HANG" ] ; then - FAKE_SLEEP_REALLY="yes" sleep 999 +if [ -n "$FAKE_MULTIPATH_HANG" ]; then + FAKE_SLEEP_REALLY="yes" sleep 999 fi path1_state="active" path2_state="enabled" -for i in $FAKE_MULTIPATH_FAILURES ; do - if [ "$device" = "$i" ] ; then - path1_state="inactive" - path2_state="inactive" - break - fi +for i in $FAKE_MULTIPATH_FAILURES; do + if [ "$device" = "$i" ]; then + path1_state="inactive" + path2_state="inactive" + break + fi done - cat <&2 <&2 - echo "program ${p} version ${v} is not available" - exit 1 - fi - else - for j in $(seq "$2" "$3") ; do - echo "program ${p} version ${j} ready and waiting" - done - exit 0 - fi - fi -done - -echo "rpcinfo: RPC: Program not registered" >&2 -if [ -n "$v" ] ; then - echo "program ${p} version ${v} is not available" -else - echo "program ${p} is not available" -fi - -exit 1 +#!/bin/sh + +prog="rpcinfo" + +usage() +{ + cat >&2 <&2 + echo "program ${p} version ${v} is not available" + exit 1 + fi + else + for j in $(seq "$2" "$3"); do + echo "program ${p} version ${j} ready and waiting" + done + exit 0 + fi + fi +done + +echo "rpcinfo: RPC: Program not registered" >&2 +if [ -n "$v" ]; then + echo "program ${p} version ${v} is not available" +else + echo "program ${p} is not available" +fi + +exit 1 diff --git a/ctdb/tests/UNIT/eventscripts/stubs/service b/ctdb/tests/UNIT/eventscripts/stubs/service index 3d6ddf4ba68..d706280c22b 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/service +++ b/ctdb/tests/UNIT/eventscripts/stubs/service @@ -8,57 +8,58 @@ flag="${service_status_dir}/${service}" start() { - if [ -f "$flag" ] ; then - echo "service: can't start ${service} - already running" - exit 1 - else - touch "$flag" - echo "Starting ${service}: OK" - fi + if [ -f "$flag" ]; then + echo "service: can't start ${service} - already running" + exit 1 + else + touch "$flag" + echo "Starting ${service}: OK" + fi } -stop () +stop() { - if [ -f "$flag" ] ; then - echo "Stopping ${service}: OK" - rm -f "$flag" - else - echo "service: can't stop ${service} - not running" - exit 1 - fi + if [ -f "$flag" ]; then + echo "Stopping ${service}: OK" + rm -f "$flag" + else + echo "service: can't stop ${service} - not running" + exit 1 + fi } case "$2" in - start) +start) start ;; - stop) +stop) stop ;; - restart|reload) +restart | reload) stop start ;; - status) - if [ -f "$flag" ] ; then - echo "$service running" - exit 0 +status) + if [ -f "$flag" ]; then + echo "$service running" + exit 0 else - echo "$service not running" - exit 3 + echo "$service not running" + exit 3 fi ;; - force-started) +force-started) # For test setup... touch "$flag" ;; - force-stopped) +force-stopped) # For test setup... rm -f "$flag" ;; - *) +*) echo "service $service $2 not supported" exit 1 + ;; esac exit 0 diff --git a/ctdb/tests/UNIT/eventscripts/stubs/sleep b/ctdb/tests/UNIT/eventscripts/stubs/sleep index e4542444de7..0d0e82bba42 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/sleep +++ b/ctdb/tests/UNIT/eventscripts/stubs/sleep @@ -1,9 +1,9 @@ #!/bin/sh -if [ "$FAKE_SLEEP_REALLY" = "yes" ] ; then - /bin/sleep "$@" -elif [ -n "$FAKE_SLEEP_FORCE" ] ; then - /bin/sleep "$FAKE_SLEEP_FORCE" +if [ "$FAKE_SLEEP_REALLY" = "yes" ]; then + /bin/sleep "$@" +elif [ -n "$FAKE_SLEEP_FORCE" ]; then + /bin/sleep "$FAKE_SLEEP_FORCE" else - : + : fi diff --git a/ctdb/tests/UNIT/eventscripts/stubs/smnotify b/ctdb/tests/UNIT/eventscripts/stubs/smnotify index c3b9f80c69b..5606b3d15f9 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/smnotify +++ b/ctdb/tests/UNIT/eventscripts/stubs/smnotify @@ -14,17 +14,44 @@ sip="" mon_name="" state="" -while [ $# -gt 0 ] ; do +while [ $# -gt 0 ]; do case "$1" in - --client) cip="$2" ; shift 2 ;; - --client=*) cip="${1#*=}" ; shift ;; - --ip) sip="$2" ; shift 2 ;; - --ip=*) sip="${1#*=}" ; shift ;; - --server) mon_name="$2" ; shift 2 ;; - --server=*) mon_name="${1#*=}" ; shift ;; - --stateval) state="$2" ; shift 2 ;; - --stateval=*) state="${1#*=}" ; shift ;; - --) shift ; break ;; + --client) + cip="$2" + shift 2 + ;; + --client=*) + cip="${1#*=}" + shift + ;; + --ip) + sip="$2" + shift 2 + ;; + --ip=*) + sip="${1#*=}" + shift + ;; + --server) + mon_name="$2" + shift 2 + ;; + --server=*) + mon_name="${1#*=}" + shift + ;; + --stateval) + state="$2" + shift 2 + ;; + --stateval=*) + state="${1#*=}" + shift + ;; + --) + shift + break + ;; -*) usage ;; *) break ;; esac diff --git a/ctdb/tests/UNIT/eventscripts/stubs/ss b/ctdb/tests/UNIT/eventscripts/stubs/ss index b174243cd6f..c1199fec64a 100755 --- a/ctdb/tests/UNIT/eventscripts/stubs/ss +++ b/ctdb/tests/UNIT/eventscripts/stubs/ss @@ -2,7 +2,7 @@ prog="ss" -usage () +usage() { cat >&2 <&2 usage @@ -26,7 +26,7 @@ not_supported () ############################################################ # -parse_filter () +parse_filter() { # Very limited implementation: # We only expect to find || inside parentheses @@ -41,7 +41,7 @@ parse_filter () sports="|" srcs="|" - while [ -n "$1" ] ; do + while [ -n "$1" ]; do case "$1" in \() in_parens=true @@ -52,17 +52,20 @@ parse_filter () shift ;; \|\|) - if ! $in_parens ; then + if ! $in_parens; then not_supported "|| in parentheses" fi shift ;; sport) - p="${3#:}" ; sports="${sports}${p}|" + p="${3#:}" + sports="${sports}${p}|" shift 3 ;; src) - ip="${2#\[}" ; ip="${ip%\]}" ; srcs="${srcs}${ip}|" + ip="${2#\[}" + ip="${ip%\]}" + srcs="${srcs}${ip}|" shift 2 ;; *) @@ -73,59 +76,59 @@ parse_filter () } # Check if socket has matches in both ok_ips and ok_ports -filter_socket () +filter_socket() { - ok_ips="$1" - ok_ports="$2" - socket="$3" - - ip="${socket%:*}" - port="${socket##*:}" - - if [ "$ok_ports" != "|" ] && - [ "${ok_ports#*|"${port}"|}" = "$ok_ports" ]; then - return 1 - fi - if [ "$ok_ips" != "|" ] && [ "${ok_ips#*|"${ip}"|}" = "$ok_ips" ]; then - return 1 - fi - - return 0 + ok_ips="$1" + ok_ports="$2" + socket="$3" + + ip="${socket%:*}" + port="${socket##*:}" + + if [ "$ok_ports" != "|" ] && + [ "${ok_ports#*|"${port}"|}" = "$ok_ports" ]; then + return 1 + fi + if [ "$ok_ips" != "|" ] && [ "${ok_ips#*|"${ip}"|}" = "$ok_ips" ]; then + return 1 + fi + + return 0 } -ss_tcp_established () +ss_tcp_established() { - if $header ; then - echo "Recv-Q Send-Q Local Address:Port Peer Address:Port" - fi - - # Yes, lose the quoting so we can do a hacky parsing job - # shellcheck disable=SC2048,SC2086 - parse_filter $* - - for i in $FAKE_NETSTAT_TCP_ESTABLISHED ; do - src="${i%|*}" - dst="${i#*|}" - if filter_socket "$srcs" "$sports" "$src" ; then - echo 0 0 "$src" "$dst" + if $header; then + echo "Recv-Q Send-Q Local Address:Port Peer Address:Port" fi - done - - if [ -z "$FAKE_NETSTAT_TCP_ESTABLISHED_FILE" ] ; then - return - fi - while read -r src dst ; do - if filter_socket "$srcs" "$sports" "$src" ; then - echo 0 0 "$src" "$dst" + + # Yes, lose the quoting so we can do a hacky parsing job + # shellcheck disable=SC2048,SC2086 + parse_filter $* + + for i in $FAKE_NETSTAT_TCP_ESTABLISHED; do + src="${i%|*}" + dst="${i#*|}" + if filter_socket "$srcs" "$sports" "$src"; then + echo 0 0 "$src" "$dst" + fi + done + + if [ -z "$FAKE_NETSTAT_TCP_ESTABLISHED_FILE" ]; then + return fi - done <"$FAKE_NETSTAT_TCP_ESTABLISHED_FILE" + while read -r src dst; do + if filter_socket "$srcs" "$sports" "$src"; then + echo 0 0 "$src" "$dst" + fi + done <"$FAKE_NETSTAT_TCP_ESTABLISHED_FILE" } ############################################################ -unix_listen () +unix_listen() { - if $header ; then + if $header; then cat <&2 - exit 2 + echo "testparm: option \"$1\" not implemented in stub" >&2 + exit 2 } -error () +error() { - cat >&2 <&2 <&2 + for i in $FAKE_SHARES; do + bi=$(basename "$i") + echo "Processing section \"[${bi}]\"" + done >&2 - cat >&2 <&2 <&2 + echo "$0: INTERNAL ERROR - timeout stub should avoid this" >&2 } -if [ -n "$FAKE_TESTPARM_FAIL" ] ; then - error +if [ -n "$FAKE_TESTPARM_FAIL" ]; then + error fi -if [ -n "$FAKE_TIMEOUT" ] ; then - timeout +if [ -n "$FAKE_TIMEOUT" ]; then + timeout fi # Ensure that testparm always uses our canned configuration instead of @@ -45,34 +45,40 @@ fi file="" parameter="" -for i ; do - case "$i" in +for i; do + case "$i" in --parameter-name=*) parameter="${i#--parameter-name=}" ;; -*) : ;; *) file="$i" ;; - esac + esac done # Just hard-code parameter requests for now. Later on they could be # parsed out of the file. case "$parameter" in - security) echo "ADS" ; exit 0 ;; - smb*ports) echo "445, 139" ; exit 0 ;; - ?*) not_implemented "--parameter-name=$parameter" ;; - # Fall through if $parameter not set +security) + echo "ADS" + exit 0 + ;; +smb*ports) + echo "445, 139" + exit 0 + ;; +?*) not_implemented "--parameter-name=$parameter" ;; + # Fall through if $parameter not set esac -if [ -n "$file" ] ; then - # This should include the shares, since this is used when the - # samba eventscript caches the output. - cat "$file" +if [ -n "$file" ]; then + # This should include the shares, since this is used when the + # samba eventscript caches the output. + cat "$file" else - # We force our own smb.conf and add the shares. - cat "${CTDB_SYS_ETCDIR}/samba/smb.conf" + # We force our own smb.conf and add the shares. + cat "${CTDB_SYS_ETCDIR}/samba/smb.conf" - for i in $FAKE_SHARES ; do - bi=$(basename "$i") -cat <