noinst_SCRIPTS += parallel-scale-nfsv3.sh parallel-scale-nfsv4.sh
noinst_SCRIPTS += posix.sh sanity-scrub.sh scrub-performance.sh
noinst_SCRIPTS += sanity-quota-old.sh
+noinst_SCRIPTS += resolveip
nobase_noinst_SCRIPTS = cfg/local.sh
nobase_noinst_SCRIPTS += test-groups/regression test-groups/regression-mpi
nobase_noinst_SCRIPTS += acl/make-tree acl/run cfg/ncli.sh
--- /dev/null
+#!/usr/bin/perl
+=pod
+
+=head1 NAME
+
+resolveip - Resolve IP address for given hostname
+
+=head1 DESCRIPTION
+
+Tries to resolve IP address of given hostname and return its value,
+returns empty value if unable to detect it.
+
+=cut
+
+use Socket;
+$hostname = $ARGV[0];
+
+sub resolve_ip {
+ ($hostname) = @_;
+
+ return unless defined $hostname;
+
+ $packed_ip = gethostbyname($hostname);
+ if (defined $packed_ip) {
+ $ip_address = inet_ntoa($packed_ip);
+ return $ip_address;
+ }
+}
+
+$ip = resolve_ip($hostname);
+
+if (not $ip or $ip eq '') {
+ print STDERR "Unable to detect ip address for host: '$hostname'\n";
+ exit 1;
+}
+
+print $ip;
+
+exit 0;
$LFS mdts $2 | sed -ne "/^$1: /s/.* \(.*\) .*$/\1/p"
}
+# Description:
+# Return unique identifier for given hostname
+host_id() {
+ local host_name=$1
+ echo $host_name | md5sum | cut -d' ' -f1
+}
+
+# Description:
+# Returns list of ip addresses for each interface
+local_addr_list() {
+ ip addr | awk '/inet\ / {print $2}' | awk -F\/ '{print $1}'
+}
+
+is_local_addr() {
+ local addr=$1
+ # Cache address list to avoid mutiple execution of local_addr_list
+ LOCAL_ADDR_LIST=${LOCAL_ADDR_LIST:-$(local_addr_list)}
+ local i
+ for i in $LOCAL_ADDR_LIST ; do
+ [[ "$i" == "$addr" ]] && return 0
+ done
+ return 1
+}
+
+local_node() {
+ local host_name=$1
+ local is_local="IS_LOCAL_$(host_id $host_name)"
+ if [ -z "${!is_local-}" ] ; then
+ eval $is_local=0
+ local host_ip=$($LUSTRE/tests/resolveip $host_name)
+ is_local_addr "$host_ip" && eval $is_local=1
+ fi
+ [[ "${!is_local}" == "1" ]]
+}
+
remote_node () {
- local node=$1
- [ "$node" != "$(hostname)" ]
+ local node=$1
+ local_node $node && return 1
+ return 0
}
remote_mds ()