web-3/wildfly/bin/installation-manager.sh
2024-11-26 02:32:07 +03:00

83 lines
2.5 KiB
Bash
Executable File

#!/bin/sh
# This script is only for internal usage and should not be invoked directly by the users from the command line.
# This script launches the operation to apply a candidate server installation to update or revert.
# The server JVM writes the required values into the installation-manager.properties file by using InstMgrCandidateStatus.java
if [ "x${INST_MGR_SCRIPT_DEBUG}" = "xtrue" ]; then
set -x
fi
INSTALLATION_HOME="${1}"
INST_MGR_LOG_PROPERTIES="${2}"
INST_MGR_LOG_FILE="${3}"
# For security, reset the environment variables first
unset INST_MGR_COMMAND
unset INST_MGR_STATUS
LOG_NAME="[management-cli-installer]"
log() {
echo "$(date "+%Y-%m-%d %H:%M:%S,%3N") ${1} $LOG_NAME - ${2}"
}
log "INFO" "Executing Management CLI Installer script."
PROPS_FILE="${INSTALLATION_HOME}/bin/installation-manager.properties"
if ! [ -e "${PROPS_FILE}" ]; then
log "ERROR" "Installation Manager properties file not found at ${PROPS_FILE}."
exit 1
fi
while IFS='=' read -r key value; do
case "${key}" in
"#"*) continue ;;
*) export "${key}=${value}" ;;
esac
done < "$PROPS_FILE"
if [ "x${INST_MGR_STATUS}" = "x" ]; then
log "ERROR" "Cannot read the Installation Manager status."
exit 1
fi
if ! [ "${INST_MGR_STATUS}" = "PREPARED" ]; then
log "ERROR" "The Candidate Server installation is not in the PREPARED status. The current status is ${INST_MGR_STATUS}"
exit 1
fi
if [ "x${INST_MGR_COMMAND}" = "x" ]; then
log "ERROR" "Installation Manager command was not set."
exit 1
fi
export JAVA_OPTS="-Dlogging.configuration=file:\"${INST_MGR_LOG_PROPERTIES}\" -Dorg.jboss.boot.log.file=\"${INST_MGR_LOG_FILE}\" -Dorg.wildfly.prospero.log.file ${JAVA_OPTS}"
log "INFO" "JAVA_OPTS environment variable: ${JAVA_OPTS}"
log "INFO" "Executing the Installation Manager command: ${INST_MGR_COMMAND}"
eval "${INST_MGR_COMMAND}"
INST_MGR_RESULT=$?
case $INST_MGR_RESULT in
0) # 0 Successful program execution.
log "INFO" "The Candidate Server was successfully applied."
echo "INST_MGR_STATUS=CLEAN" > "${PROPS_FILE}"
log "INFO" "Management CLI Installer script finished."
exit 0
;;
1) # 1 Failed operation.
log "ERROR" "The operation was unsuccessful. The candidate server was not installed correctly. Check server logs for more information."
;;
2) # 2 Invalid arguments were given.
log "ERROR" "The Candidate Server installation failed. Invalid arguments were provided."
;;
*)
echo "ERROR: An unknown error occurred during the execution of the installation manager."
;;
esac
exit 1