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"
         ;;

Reply via email to