/usr/bin/hwloc-assembler-remote is in hwloc 1.8-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #!/bin/sh
#-*-sh-*-
#
# Copyright © 2011-2013 Inria. All rights reserved.
# See COPYING in top-level directory.
#
prefix="/usr"
exec_prefix="${prefix}"
bindir="${exec_prefix}/bin"
# this will be changed into $bindir/lstopo during make install
locallstopo="$bindir/lstopo"
assembler="$bindir/hwloc-assembler"
force=0
show=0
ssh=ssh
remotelstopo=lstopo
remotelstopoopts=
inputs=
inputopts=
failedhosts=
output=
error()
{
echo $@ 2>&1
}
usage()
{
echo "$0 [options] <output> <host1> <host2> ..."
echo " Gathers the topology of remote hosts and assembles them into the"
echo " <output> XML topology."
echo "Options:"
echo " --ssh <ssh> Use the given ssh command (and options) to connect to remote hosts"
echo " --lstopo-path <path> Use the given path as the remote lstopo command"
echo " --lstopo-opts <opts> Pass the given lstopo options when gathering remote topologies"
echo " --show Display the resulting topology before exit"
echo " -f --force Ignore failure to load a remote host topology"
}
while test $# -gt 0 ; do
case "$1" in
--ssh)
ssh="$2"
shift
;;
--lstopo-path)
remotelstopo="$2"
shift
;;
--lstopo-opts)
remotelstopoopts="$2"
shift
;;
-s|--show)
show=1
;;
-f|--force)
force=1
;;
-h)
usage
exit 0
;;
-*)
error "Unrecognized option: $1"
usage
exit 1
;;
*)
if test -z "$output" ; then
output="$1"
else
file=`mktemp --tmpdir hwloc-assembler-remote.$1.XXXXXXXX.xml`
echo -n "Exporting host $1 topology to $file ..."
if "$ssh" "$1" "$remotelstopo" "$remotelstopoopts" -.xml > $file ; then
echo "done"
inputs="$inputs $file"
inputopts="$inputopts --name $1 $file"
else
echo "failed!"
rm "$file"
failedhosts="$failedhosts $1"
test $force -eq 0 && exit -1;
fi
fi
;;
esac
shift
done
if test -z "$output" ; then
error "Missing output filename"
rm -f $inputs
usage
exit 1
fi
test $force -eq 1 && assembleropts="$assembleropts -f"
echo "$assembler" $assembleropts "$output" $inputopts
"$assembler" $assembleropts "$output" $inputopts
ret=$?
rm -f $inputs
if test $ret -eq 0 ; then
echo "Assembled into $output"
else
echo "Failed to assemble into $output"
fi
if test -n "$failedhosts" ; then
error "Failed to contact hosts:$failedhosts"
fi
if test $ret -eq 0 -a $show -eq 1 ; then "$locallstopo" -i "$output" ; fi
|