diff --git a/scripts/install/common.sh b/scripts/install/common.sh index e176dbf3b..338bc55f7 100755 --- a/scripts/install/common.sh +++ b/scripts/install/common.sh @@ -30,9 +30,53 @@ source "${OPENIM_ROOT}/scripts/lib/init.sh" # Make sure the environment is only called via common to avoid too much nesting source "${OPENIM_ROOT}/scripts/install/environment.sh" +# Make sure the environment is only called via common to avoid too much nesting +openim::common::rpc::service_port() { + local targets=( + $OPENIM_USER_PORT # User service + $OPENIM_FRIEND_PORT # Friend service + $OPENIM_MESSAGE_PORT # Message service + $OPENIM_MESSAGE_GATEWAY_PORT # Message gateway + $OPENIM_GROUP_PORT # Group service + $OPENIM_AUTH_PORT # Authorization service + $OPENIM_PUSH_PORT # Push service + $OPENIM_CONVERSATION_PORT # Conversation service + $OPENIM_THIRD_PORT # Third-party service + ) + echo "${targets[@]}" +} +IFS=" " read -ra OPENIM_RPC_PORT_TARGETS <<< "$(openim::common::rpc::service_port)" +readonly OPENIM_RPC_PORT_TARGETS +readonly OPENIM_RPC_PORT_LISTARIES=("${OPENIM_RPC_PORT_TARGETS[@]##*/}") + +# This function returns a list of Prometheus ports for various services +# based on the provided configuration. Each service has its own dedicated +# port for monitoring purposes. +openim::common::rpc::prometheus_port() { + # Declare an array to hold all the Prometheus ports for different services + local targets=( + ${USER_PROM_PORT} # Prometheus port for user service + ${FRIEND_PROM_PORT} # Prometheus port for friend service + ${MESSAGE_PROM_PORT} # Prometheus port for message service + ${MSG_GATEWAY_PROM_PORT} # Prometheus port for message gateway service + ${GROUP_PROM_PORT} # Prometheus port for group service + ${AUTH_PROM_PORT} # Prometheus port for authentication service + ${PUSH_PROM_PORT} # Prometheus port for push notification service + ${CONVERSATION_PROM_PORT} # Prometheus port for conversation service + ${RTC_PROM_PORT} # Prometheus port for real-time communication service + ${THIRD_PROM_PORT} # Prometheus port for third-party integrations service + ${MSG_TRANSFER_PROM_PORT} # Prometheus port for message transfer service + ) + # Print the list of ports + echo "${targets[@]}" +} +IFS=" " read -ra OPENIM_PROM_PORT_TARGETS <<< "$(openim::common::rpc::prometheus_port)" +readonly OPENIM_PROM_PORT_TARGETS +readonly OPENIM_PROM_PORT_LISTARIES=("${OPENIM_PROM_PORT_TARGETS[@]##*/}") + # Storing all the defined ports in an array for easy management and access. # This array consolidates the port numbers for all the services defined above. -openim::common::service_port_name() { +openim::common::service_port() { local targets=( $OPENIM_USER_PORT # User service $OPENIM_FRIEND_PORT # Friend service @@ -43,16 +87,18 @@ openim::common::service_port_name() { $OPENIM_PUSH_PORT # Push service $OPENIM_CONVERSATION_PORT # Conversation service $OPENIM_THIRD_PORT # Third-party service + + # API PORT $API_OPENIM_PORT # API service $OPENIM_WS_PORT # WebSocket service ) echo "${targets[@]}" } - -IFS=" " read -ra OPENIM_SERVER_PORT_TARGETS <<< "$(openim::common::service_port_name)" +IFS=" " read -ra OPENIM_SERVER_PORT_TARGETS <<< "$(openim::common::service_port)" readonly OPENIM_SERVER_PORT_TARGETS readonly OPENIM_SERVER_PORT_LISTARIES=("${OPENIM_SERVER_PORT_TARGETS[@]##*/}") + # Execute commands that require root permission without entering a password function openim::common::sudo { echo ${LINUX_PASSWORD} | sudo -S $1 diff --git a/scripts/install/openim-msgtransfer.sh b/scripts/install/openim-msgtransfer.sh index 779304b6c..e0c56fbc6 100755 --- a/scripts/install/openim-msgtransfer.sh +++ b/scripts/install/openim-msgtransfer.sh @@ -43,7 +43,7 @@ if [ "${OPENIM_MSGGATEWAY_NUM}" -lt 1 ]; then opeim::log::error_exit "OPENIM_MSGGATEWAY_NUM must be greater than 0" fi -if [ ${OPENIM_MSGGATEWAY_NUM} -ne ${#MSG_TRANSFER_PROM_PORTS[@]} -1]; then +if [ ${OPENIM_MSGGATEWAY_NUM} -ne $((${#MSG_TRANSFER_PROM_PORTS[@]} - 1)) ]; then openim::log::error_exit "OPENIM_MSGGATEWAY_NUM must be equal to the number of MSG_TRANSFER_PROM_PORTS" fi diff --git a/scripts/lib/logging.sh b/scripts/lib/logging.sh index 502323706..22b2edc22 100755 --- a/scripts/lib/logging.sh +++ b/scripts/lib/logging.sh @@ -175,6 +175,7 @@ openim::log::progress() { done } +# Print out some info that isn't a top level status line openim::log::info_from_stdin() { local messages=() while read -r line; do @@ -205,7 +206,8 @@ openim::log::success() if [[ ${OPENIM_VERBOSE} < ${V} ]]; then return fi - echo_log -e "${BRIGHT_GREEN_PREFIX}[success] ${COLOR_SUFFIX}==> " "$@" + timestamp=$(date +"%m%d %H:%M:%S") + echo_log -e "${BRIGHT_GREEN_PREFIX}[success ${timestamp}] ${COLOR_SUFFIX}==> " "$@" } function openim::log::test_log() {