Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions bigtop-manager-agent/src/main/resources/bin/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,49 @@
# under the License.
#

set -e

JAVA_SEARCH_DIRS=(
"/usr/local/java*"
"/usr/lib/jvm/java-*"
"/usr/java/jdk*"
"/opt/java*"
"/opt/jdk*"
"/usr/lib/jvm/*"
)

# Find a suitable Java (version >= 17)
find_java() {
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
JAVA_CANDIDATES=("$JAVA_HOME/bin/java")
else
JAVA_CANDIDATES=()
JAVA_PATH=$(command -v java 2>/dev/null || true)
[ -n "$JAVA_PATH" ] && JAVA_CANDIDATES+=("$JAVA_PATH")

for pattern in "${JAVA_SEARCH_DIRS[@]}"; do
for dir in $(compgen -G "$pattern" 2>/dev/null); do
# Check privileges, make sure the script won't exit
[ -x "$dir/bin/java" ] 2>/dev/null || true
[ -x "$dir/bin/java" ] && JAVA_CANDIDATES+=("$dir/bin/java")
done
done
fi

for JAVA_CMD in "${JAVA_CANDIDATES[@]}"; do
VERSION_STR=$("$JAVA_CMD" -version 2>&1 | awk -F '"' '/version/ {print $2}')
MAJOR_VERSION=$(echo "$VERSION_STR" | awk -F. '{if ($1 == "1") print $2; else print $1}')
if [ "$MAJOR_VERSION" -ge 17 ]; then
export JAVA_CMD
return 0
fi
done

echo "Error: Java 17 or higher is required. No suitable java found." >&2
exit 1
}

find_java

export JAVA_OPTS=""
export JAVA_CMD
2 changes: 1 addition & 1 deletion bigtop-manager-agent/src/main/resources/bin/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,6 @@ fi

cd $BIGTOP_MANAGER_HOME

$JAVA_HOME/bin/java $JAVA_OPTS \
$JAVA_CMD $JAVA_OPTS \
-cp "${BIGTOP_MANAGER_HOME}/conf":"${BIGTOP_MANAGER_HOME}/libs/*" \
org.apache.bigtop.manager.agent.AgentApplication
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
package org.apache.bigtop.manager.server.aop;

import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.dao.po.AuditLogPO;
import org.apache.bigtop.manager.dao.repository.AuditLogDao;
import org.apache.bigtop.manager.server.holder.SessionUserHolder;
Expand Down Expand Up @@ -82,7 +81,9 @@ public void before(JoinPoint joinPoint) {
auditLogPO.setTagDesc(apiDesc);
auditLogPO.setOperationSummary(operationSummary);
auditLogPO.setOperationDesc(operationDesc);
auditLogPO.setArgs(JsonUtils.writeAsString(joinPoint.getArgs()));

// Temporary disable since params of command api sometimes are too long
// auditLogPO.setArgs(JsonUtils.writeAsString(joinPoint.getArgs()));

log.debug("auditLog: {}", auditLogPO);
log.debug("request method:{}.{}", joinPoint.getSignature().getDeclaringTypeName(), methodName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,17 +274,22 @@ public void installDependencies(HostDTO hostDTO, String hostname, InstalledStatu
try {
String script = ProjectPathUtils.getServerScriptPath() + File.separator + "setup-agent.sh";
String content = Files.readString(Path.of(script));
command = "cat << 'EOF' > ./setup-agent.sh\n"
+ content
+ "\nEOF\n"
+ "chmod +x ./setup-agent.sh && ./setup-agent.sh " + path + " " + repoUrl + " " + grpcPort;
command = "cat << 'EOF' > ./setup-agent.sh\n" + content + "\nEOF\n" + "chmod +x ./setup-agent.sh";
ShellResult result = execCommandOnRemoteHost(hostDTO, hostname, command);
if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
log.error("Unable to write agent script, hostname: {}, msg: {}", hostname, result);
installedStatusVO.setStatus(InstalledStatusEnum.FAILED);
installedStatusVO.setMessage(result.getErrMsg());
return;
}
} catch (IOException e) {
log.error("Unable to write agent script, hostname: {}, msg: {}", hostname, e.getMessage());
installedStatusVO.setStatus(InstalledStatusEnum.FAILED);
installedStatusVO.setMessage(e.getMessage());
return;
}

command = "./setup-agent.sh " + path + " " + repoUrl + " " + grpcPort;
ShellResult result = execCommandOnRemoteHost(hostDTO, hostname, command);
if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
log.error("Unable to setup agent, hostname: {}, msg: {}", hostname, result);
Expand Down
47 changes: 46 additions & 1 deletion bigtop-manager-server/src/main/resources/bin/env.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
Expand All @@ -17,5 +18,49 @@
# under the License.
#

set -e

export JAVA_OPTS=""
JAVA_SEARCH_DIRS=(
"/usr/local/java*"
"/usr/lib/jvm/java-*"
"/usr/java/jdk*"
"/opt/java*"
"/opt/jdk*"
"/usr/lib/jvm/*"
)

# Find a suitable Java (version >= 17)
find_java() {
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
JAVA_CANDIDATES=("$JAVA_HOME/bin/java")
else
JAVA_CANDIDATES=()
JAVA_PATH=$(command -v java 2>/dev/null || true)
[ -n "$JAVA_PATH" ] && JAVA_CANDIDATES+=("$JAVA_PATH")

for pattern in "${JAVA_SEARCH_DIRS[@]}"; do
for dir in $(compgen -G "$pattern" 2>/dev/null); do
# Check privileges, make sure the script won't exit
[ -x "$dir/bin/java" ] 2>/dev/null || true
[ -x "$dir/bin/java" ] && JAVA_CANDIDATES+=("$dir/bin/java")
done
done
fi

for JAVA_CMD in "${JAVA_CANDIDATES[@]}"; do
VERSION_STR=$("$JAVA_CMD" -version 2>&1 | awk -F '"' '/version/ {print $2}')
MAJOR_VERSION=$(echo "$VERSION_STR" | awk -F. '{if ($1 == "1") print $2; else print $1}')
if [ "$MAJOR_VERSION" -ge 17 ]; then
export JAVA_CMD
return 0
fi
done

echo "Error: Java 17 or higher is required. No suitable java found." >&2
exit 1
}

find_java

export JAVA_OPTS=""
export JAVA_CMD
2 changes: 1 addition & 1 deletion bigtop-manager-server/src/main/resources/bin/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@ fi

cd $BIGTOP_MANAGER_HOME

$JAVA_HOME/bin/java $JAVA_OPTS \
$JAVA_CMD $JAVA_OPTS \
-cp "${BIGTOP_MANAGER_HOME}/conf":"${BIGTOP_MANAGER_HOME}/libs/*" \
org.apache.bigtop.manager.server.ServerApplication
4 changes: 2 additions & 2 deletions dev-support/docker/containers/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,8 @@ while [ $# -gt 0 ]; do
echo "Requires a container number" 1>&2
usage
fi
if [ $2 -gt 10 ] || [ $2 -lt 3 ]; then
echo "NUM-INSTANCES should be between [3-10]" 1>&2
if [ $2 -gt 10 ] || [ $2 -lt 1 ]; then
echo "NUM-INSTANCES should be between [1-10]" 1>&2
usage
fi
NUM_INSTANCES=$2
Expand Down
Loading