This is an automated email from the ASF dual-hosted git repository.
liuhaopeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push:
new d0102829 BIGTOP-4456: Improve log for setup agent (#237)
d0102829 is described below
commit d0102829ca3fcc79cb5dfd78767b45488cc2b484
Author: Zhiguo Wu <[email protected]>
AuthorDate: Sat Jul 5 22:06:05 2025 +0800
BIGTOP-4456: Improve log for setup agent (#237)
---
bigtop-manager-agent/src/main/resources/bin/env.sh | 4 +-
.../src/main/resources/bin/start.sh | 2 +
.../server/service/impl/HostServiceImpl.java | 6 +--
.../src/main/resources/scripts/setup-agent.sh | 55 +++++++++++++++++-----
dev-support/docker/containers/build.sh | 4 +-
...ckerfile.openeuler24 => Dockerfile.openeuler22} | 4 +-
dev-support/docker/image/Dockerfile.openeuler24 | 2 +-
dev-support/docker/image/build.sh | 3 ++
8 files changed, 57 insertions(+), 23 deletions(-)
diff --git a/bigtop-manager-agent/src/main/resources/bin/env.sh
b/bigtop-manager-agent/src/main/resources/bin/env.sh
index 5533b6bc..d544f755 100755
--- a/bigtop-manager-agent/src/main/resources/bin/env.sh
+++ b/bigtop-manager-agent/src/main/resources/bin/env.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,5 +18,4 @@
# under the License.
#
-
-export JAVA_OPTS=""
\ No newline at end of file
+export JAVA_OPTS=""
diff --git a/bigtop-manager-agent/src/main/resources/bin/start.sh
b/bigtop-manager-agent/src/main/resources/bin/start.sh
index 638b5b13..87c78672 100755
--- a/bigtop-manager-agent/src/main/resources/bin/start.sh
+++ b/bigtop-manager-agent/src/main/resources/bin/start.sh
@@ -18,6 +18,8 @@
# under the License.
#
+set -e
+
BIN_DIR=$(dirname $0)
BIGTOP_MANAGER_HOME=${BIGTOP_MANAGER_HOME:-$(cd $BIN_DIR/..; pwd)}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
index 58b1ce5b..8927c2c1 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
@@ -279,8 +279,7 @@ public class HostServiceImpl implements HostService {
+ "\nEOF\n"
+ "chmod +x ./setup-agent.sh && ./setup-agent.sh " + path
+ " " + repoUrl + " " + grpcPort;
} catch (IOException e) {
- log.error("Unable to setup agent, hostname: {}, msg: {}",
hostname, e.getMessage());
-
+ log.error("Unable to write agent script, hostname: {}, msg: {}",
hostname, e.getMessage());
installedStatusVO.setStatus(InstalledStatusEnum.FAILED);
installedStatusVO.setMessage(e.getMessage());
return;
@@ -288,8 +287,7 @@ public class HostServiceImpl implements HostService {
ShellResult result = execCommandOnRemoteHost(hostDTO, hostname,
command);
if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
- log.error("Unable to setup agent, hostname: {}, msg: {}",
hostname, result.getErrMsg());
-
+ log.error("Unable to setup agent, hostname: {}, msg: {}",
hostname, result);
installedStatusVO.setStatus(InstalledStatusEnum.FAILED);
installedStatusVO.setMessage(result.getErrMsg());
return;
diff --git a/bigtop-manager-server/src/main/resources/scripts/setup-agent.sh
b/bigtop-manager-server/src/main/resources/scripts/setup-agent.sh
index c26a592c..38486faa 100644
--- a/bigtop-manager-server/src/main/resources/scripts/setup-agent.sh
+++ b/bigtop-manager-server/src/main/resources/scripts/setup-agent.sh
@@ -21,16 +21,25 @@
set -e
[ $# -lt 3 ] && {
- echo "Usage: $0 <dir_prefix> <repo_url> <grpc_port> [checksum_alg
checksum_value]" >&2
+ info "Usage: $0 <dir_prefix> <repo_url> <grpc_port> [checksum_alg
checksum_value]"
exit 1
}
USER=$(whoami)
GROUP=$(id -gn)
+info() {
+ echo $1 >> setup-agent.log 2>&1
+}
+
+error () {
+ echo $1 >&2
+ echo $1 >> setup-agent.log 2>&1
+}
+
check_sudo() {
if ! sudo -n true 2>/dev/null; then
- echo "ERROR: User '$USER' doesn't have sudo privileges" >&2
+ error "User '$USER' doesn't have sudo privileges"
exit 1
fi
}
@@ -59,7 +68,7 @@ validate_checksum() {
local calc_val=$($sum_cmd "$file" | awk '{print $1}')
[ "$calc_val" = "$CHECK_VAL" ] || {
- echo "Checksum mismatch: Expected ${CHECK_ALG}=$CHECK_VAL,
Found=$calc_val" >&2
+ error "Checksum mismatch: Expected ${CHECK_ALG}=$CHECK_VAL,
Found=$calc_val"
return 1
}
}
@@ -70,27 +79,29 @@ handle_tar_file() {
if [ -f "$TAR_FILE" ]; then
if [ -n "$CHECK_ALG" ]; then
validate_checksum "$TAR_FILE" || {
- echo "Removing invalid file: $TAR_FILE" >&2
+ info "Removing invalid file: $TAR_FILE"
rm -f "$TAR_FILE"
- return 1
}
+ else
+ info "Using existing file: $TAR_FILE"
+ return 0
fi
- return 0
fi
# Download file
+ info "Downloading agent tarball from $DOWNLOAD_URL to $TAR_FILE"
if command -v wget &> /dev/null; then
- wget "$DOWNLOAD_URL" -O "$TAR_FILE"
+ wget -q "$DOWNLOAD_URL" -O "$TAR_FILE"
else
- curl -L "$DOWNLOAD_URL" -o "$TAR_FILE"
+ curl -sL "$DOWNLOAD_URL" -o "$TAR_FILE"
fi
# Post-download validation
if [ -n "$CHECK_ALG" ]; then
- echo "Validating checksum"
+ info "Validating checksum"
validate_checksum "$TAR_FILE" || {
rm -f "$TAR_FILE"
- echo "Downloaded file checksum validation failed" >&2
+ error "Downloaded file checksum validation failed"
exit 1
}
fi
@@ -107,12 +118,32 @@ deploy_agent() {
start() {
export GRPC_PORT="$GRPC_PORT"
+ info "Prepare to start agent"
if ! pgrep -f "${PROCESS_NAME}" > /dev/null; then
- nohup ${TARGET_DIR}/bin/start.sh --debug > /dev/null 2>&1 &
+ info "Starting agent"
+ nohup ${TARGET_DIR}/bin/start.sh --debug > /dev/null
2>>setup-agent.log &
sleep 10
- pgrep -f "${PROCESS_NAME}" > /dev/null || exit 1
+ if ! pgrep -f "${PROCESS_NAME}" > /dev/null; then
+ error "Failed to start agent, please check the log"
+ exit 1
+ else
+ info "Agent started successfully"
+ fi
+ else
+ info "Agent is already running"
fi
}
+# Remove previous log file
+rm -f setup-agent.log
+
+# Log variables
+info "DIR_PREFIX: $DIR_PREFIX"
+info "REPO_URL: $REPO_URL"
+info "GRPC_PORT: $GRPC_PORT"
+info "CHECK_ALG: $CHECK_ALG"
+info "CHECK_VAL: $CHECK_VAL"
+
+# Run deployment
deploy_agent
start
diff --git a/dev-support/docker/containers/build.sh
b/dev-support/docker/containers/build.sh
index 84803068..c512141c 100755
--- a/dev-support/docker/containers/build.sh
+++ b/dev-support/docker/containers/build.sh
@@ -186,8 +186,8 @@ while [ $# -gt 0 ]; do
echo "Requires a os" 1>&2
usage
fi
- if [ $2 != "rocky-8" ] && [ $2 != "openeuler-24" ]; then
- echo "The OS should be [rocky-8] or [openeuler-24]" 1>&2
+ if [ $2 != "rocky-8" ] && [ $2 != "openeuler-22" ] && [ $2 !=
"openeuler-24" ]; then
+ echo "The OS should be [rocky-8], [openeuler-22] or [openeuler-24]"
1>&2
usage
fi
OS=$2
diff --git a/dev-support/docker/image/Dockerfile.openeuler24
b/dev-support/docker/image/Dockerfile.openeuler22
similarity index 90%
copy from dev-support/docker/image/Dockerfile.openeuler24
copy to dev-support/docker/image/Dockerfile.openeuler22
index 8866a9ca..8e1c6566 100644
--- a/dev-support/docker/image/Dockerfile.openeuler24
+++ b/dev-support/docker/image/Dockerfile.openeuler22
@@ -13,14 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM openeuler/openeuler:24.03
+FROM openeuler/openeuler:22.03
RUN dnf install -y sudo wget openssh-clients openssh-server mariadb
mariadb-server net-tools chrony krb5-server krb5-libs krb5-workstation git
python3 procps-ng
RUN dnf install -y postgresql java-17-openjdk-devel vim numactl
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
ENV PATH=$JAVA_HOME/bin:$PATH
-RUN wget --no-check-certificate
https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
&& \
+RUN wget --no-check-certificate
https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
&& \
tar -xvf apache-maven-3.8.8-bin.tar.gz && \
mv apache-maven-3.8.8 /usr/lib/maven
ENV PATH=${PATH}:/usr/lib/maven/bin
diff --git a/dev-support/docker/image/Dockerfile.openeuler24
b/dev-support/docker/image/Dockerfile.openeuler24
index 8866a9ca..6b61603c 100644
--- a/dev-support/docker/image/Dockerfile.openeuler24
+++ b/dev-support/docker/image/Dockerfile.openeuler24
@@ -20,7 +20,7 @@ RUN dnf install -y postgresql java-17-openjdk-devel vim
numactl
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
ENV PATH=$JAVA_HOME/bin:$PATH
-RUN wget --no-check-certificate
https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
&& \
+RUN wget --no-check-certificate
https://archive.apache.org/dist/maven/maven-3/3.8.8/apache-maven-3.8.8-bin.tar.gz
&& \
tar -xvf apache-maven-3.8.8-bin.tar.gz && \
mv apache-maven-3.8.8 /usr/lib/maven
ENV PATH=${PATH}:/usr/lib/maven/bin
diff --git a/dev-support/docker/image/build.sh
b/dev-support/docker/image/build.sh
index 6f1238ad..3cc88aeb 100755
--- a/dev-support/docker/image/build.sh
+++ b/dev-support/docker/image/build.sh
@@ -52,6 +52,9 @@ case ${OS}-${VERSION_INT} in
rocky-8)
DOCKERFILE="Dockerfile.rocky8"
;;
+ openeuler-22)
+ DOCKERFILE="Dockerfile.openeuler22"
+ ;;
openeuler-24)
DOCKERFILE="Dockerfile.openeuler24"
;;