This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git
The following commit(s) were added to refs/heads/main by this push:
new e74a1f5 Replace use of `pssh` with `parallel-ssh` (#179)
e74a1f5 is described below
commit e74a1f5904bc165d4054ea1a0fd93d8eacc82606
Author: Dom G <47725857+domgargu...@users.noreply.github.com>
AuthorDate: Thu Dec 16 14:39:28 2021 -0500
Replace use of `pssh` with `parallel-ssh` (#179)
* Replaced pssh and pscp
* Fall back to parallel-ssh when pssh unavailable
* Fix quoting in sudo commands in agitator
* Preserve PSSH environment over sudo commands for agitator
* Properly set PSSH in perl agitator code from process environment
* Fix a couple typos in READMEs
Co-authored-by: Christopher Tubbs
---
bin/agitator | 15 +++
libexec/master-agitator.pl| 14 ++
test/bench/README.md | 2 +-
test/compat/japi-compliance/README.md | 2 +-
test/scalability/README.md| 2 +-
test/stress/README.md | 7 ---
test/stress/start-readers.sh | 4 ++--
test/stress/start-writers.sh | 4 ++--
test/stress/stop-readers.sh | 2 +-
test/stress/stop-writers.sh | 2 +-
test/stress/stress-env.sh | 12
11 files changed, 46 insertions(+), 20 deletions(-)
diff --git a/bin/agitator b/bin/agitator
index 8d15f94..cf1dd55 100755
--- a/bin/agitator
+++ b/bin/agitator
@@ -31,7 +31,14 @@ EOF
}
function start_agitator() {
- hash pssh 2>/dev/null || { echo >&2 "The agitator requires pssh to be
installed. Aborting."; exit 1; }
+ ## check that pssh is installed, falling back to parallel-ssh if needed
+ if hash pssh 2>/dev/null; then
+PSSH=pssh
+ elif hash parallel-ssh 2>/dev/null; then
+PSSH=parallel-ssh
+ else
+echo >&2 "The agitator requires pssh/parallel-ssh to be installed.
Aborting."; exit 1;
+ fi
mkdir -p "${at_home}/logs"
log_base="${at_home}/logs/$(date +%Y%m%d%H%M%S)_$(hostname)"
@@ -50,15 +57,15 @@ function start_agitator() {
$tserver_cmd > "${tserver_log}.out" 2> "${tserver_log}.err" &
else
echo "Running master-agitator and tserver-agitator as $AGTR_ACCUMULO_USER
using sudo."
-sudo -u "$AGTR_ACCUMULO_USER" "$master_cmd" > "${master_log}.out" 2>
"${master_log}.err" &
-sudo -u "$AGTR_ACCUMULO_USER" "$tserver_cmd" > "${tserver_log}.out" 2>
"${tserver_log}.err" &
+sudo --preserve-env=PSSH -u "$AGTR_ACCUMULO_USER" $master_cmd >
"${master_log}.out" 2> "${master_log}.err" &
+sudo -u "$AGTR_ACCUMULO_USER" $tserver_cmd > "${tserver_log}.out" 2>
"${tserver_log}.err" &
fi
if [[ $AGITATOR_USER == "$AGTR_HDFS_USER" ]]; then
echo "Running datanode-agitator as $AGITATOR_USER"
$datanode_cmd > "${datanode_log}.out" 2> "${datanode_log}.err" &
else
echo "Running datanode-agitator as $AGTR_HDFS_USER using sudo."
-sudo -u "$AGTR_HDFS_USER" "$datanode_cmd" > "${datanode_log}.out" 2>
"${datanode_log}.err" &
+sudo -u "$AGTR_HDFS_USER" $datanode_cmd > "${datanode_log}.out" 2>
"${datanode_log}.err" &
fi
if ${AGTR_HDFS:-false} ; then
diff --git a/libexec/master-agitator.pl b/libexec/master-agitator.pl
index e90c70d..dfc2155 100755
--- a/libexec/master-agitator.pl
+++ b/libexec/master-agitator.pl
@@ -30,6 +30,12 @@ if( defined $ENV{'ACCUMULO_HOME'} ){
print "ERROR: ACCUMULO_HOME needs to be set!";
exit(1);
}
+if( defined $ENV{'PSSH'} ){
+ $PSSH = $ENV{'PSSH'};
+} else {
+ print "ERROR: PSSH needs to be set!";
+ exit(1);
+}
$accumuloConfDir = $accumuloHome . '/conf';
@@ -67,11 +73,11 @@ while(1){
system($cmd);
}else{
print STDERR "$t Killing all masters\n";
- $cmd = "pssh -h $accumuloConfDir/masters \"pkill -f '[
]org.apache.accumulo.start.*master'\" < /dev/null";
+ $cmd = "$PSSH -h $accumuloConfDir/masters \"pkill -f '[
]org.apache.accumulo.start.*master'\" < /dev/null";
print "$t $cmd\n";
system($cmd);
- $cmd = "pssh -h $accumuloConfDir/$gcfile \"pkill -f '[
]org.apache.accumulo.start.*gc'\" < /dev/null";
+ $cmd = "$PSSH -h $accumuloConfDir/$gcfile \"pkill -f '[
]org.apache.accumulo.start.*gc'\" < /dev/null";
print "$t $cmd\n";
system($cmd);
}
@@ -80,11 +86,11 @@ while(1){
$t = strftime "%Y%m%d %H:%M:%S", localtime;
print STDERR "$t Running start-all\n";
- $cmd = "pssh -h $accumuloConfDir/masters
\"$accumuloHome/bin/accumulo-service master start\" < /dev/null";
+ $cmd = "$PSSH -h $accumuloConfDir/masters
\"$accumuloHome/bin/accumulo-service master start\" < /dev/null";
print "$t $cmd\n";
system($cmd);
- $cmd = "pssh -h $accumuloConfDir/$gcfile
\