Skip to content

Commit

Permalink
Move external dependency connection check to a separate function (#317)
Browse files Browse the repository at this point in the history
  • Loading branch information
evgeniy-antonyuk authored Aug 26, 2024
1 parent 34e1e76 commit 603a11b
Showing 1 changed file with 44 additions and 40 deletions.
84 changes: 44 additions & 40 deletions install/OneClickInstall/install-Docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -972,15 +972,8 @@ domain_check () {

establish_conn() {
echo -n "Trying to establish $3 connection... "

exec {FD}<> /dev/tcp/$1/$2 && exec {FD}>&-

if [ "$?" != 0 ]; then
echo "FAILURE";
exit 1;
fi

echo "OK"
exec {FD}<> /dev/tcp/${1}/${2} && { exec {FD}>&-; echo "OK"; } || { echo "FAILURE"; exit 1; }
}

get_env_parameter () {
Expand Down Expand Up @@ -1057,6 +1050,7 @@ set_docs_url_external () {

if [[ ! -z ${DOCUMENT_SERVER_URL_EXTERNAL} ]] && [[ $DOCUMENT_SERVER_URL_EXTERNAL =~ ^(https?://)?([^:/]+)(:([0-9]+))?(/.*)?$ ]]; then
[[ -z ${BASH_REMATCH[1]} ]] && DOCUMENT_SERVER_URL_EXTERNAL="http://$DOCUMENT_SERVER_URL_EXTERNAL"
DOCUMENT_SERVER_PROTOCOL="${BASH_REMATCH[1]}"
DOCUMENT_SERVER_HOST="${BASH_REMATCH[2]}"
DOCUMENT_SERVER_PORT="${BASH_REMATCH[4]:-"80"}"
fi
Expand Down Expand Up @@ -1132,11 +1126,6 @@ set_installation_type_data () {
}

download_files () {
# Fixes issues with variables when upgrading to v1.1.3
HOSTS=("ELK_HOST" "REDIS_HOST" "RABBIT_HOST" "MYSQL_HOST");
for HOST in "${HOSTS[@]}"; do [[ "${!HOST}" == *CONTAINER_PREFIX* || "${!HOST}" == *$PACKAGE_SYSNAME* ]] && export "$HOST="; done
[[ "${APP_URL_PORTAL}" == *${PACKAGE_SYSNAME}-proxy* ]] && APP_URL_PORTAL=""

[ "${OFFLINE_INSTALLATION}" = "false" ] && echo -n "Downloading configuration files to ${BASE_DIR}..." || echo "Unzip docker.tar.gz to ${BASE_DIR}..."

[ -d "${BASE_DIR}" ] && rm -rf "${BASE_DIR}"
Expand Down Expand Up @@ -1185,10 +1174,6 @@ install_mysql_server () {
docker-compose -f $BASE_DIR/db.yml up -d
elif [ "$INSTALL_MYSQL_SERVER" == "pull" ]; then
docker-compose -f $BASE_DIR/db.yml pull
elif [ ! -z "$MYSQL_HOST" ]; then
establish_conn ${MYSQL_HOST} "${MYSQL_PORT:-"3306"}" "MySQL"
reconfigure MYSQL_HOST ${MYSQL_HOST}
reconfigure MYSQL_PORT "${MYSQL_PORT:-"3306"}"
fi
}

Expand All @@ -1199,11 +1184,6 @@ install_document_server () {
docker-compose -f $BASE_DIR/ds.yml up -d
elif [ "$INSTALL_DOCUMENT_SERVER" == "pull" ]; then
docker-compose -f $BASE_DIR/ds.yml pull
elif [ ! -z "$DOCUMENT_SERVER_HOST" ]; then
APP_URL_PORTAL=${APP_URL_PORTAL:-"http://$(curl -s ifconfig.me):${EXTERNAL_PORT}"}
establish_conn ${DOCUMENT_SERVER_HOST} ${DOCUMENT_SERVER_PORT} "${PACKAGE_SYSNAME^^} Docs"
reconfigure DOCUMENT_SERVER_URL_EXTERNAL ${DOCUMENT_SERVER_URL_EXTERNAL}
reconfigure DOCUMENT_SERVER_URL_PUBLIC ${DOCUMENT_SERVER_URL_EXTERNAL}
fi
}

Expand All @@ -1212,13 +1192,6 @@ install_rabbitmq () {
docker-compose -f $BASE_DIR/rabbitmq.yml up -d
elif [ "$INSTALL_RABBITMQ" == "pull" ]; then
docker-compose -f $BASE_DIR/rabbitmq.yml pull
elif [ ! -z "$RABBIT_HOST" ]; then
establish_conn ${RABBIT_HOST} "${RABBIT_PORT:-"5672"}" "RabbitMQ"
reconfigure RABBIT_HOST ${RABBIT_HOST}
reconfigure RABBIT_PORT "${RABBIT_PORT:-"5672"}"
reconfigure RABBIT_USER_NAME ${RABBIT_USER_NAME}
reconfigure RABBIT_PASSWORD ${RABBIT_PASSWORD}
reconfigure RABBIT_VIRTUAL_HOST "${RABBIT_VIRTUAL_HOST:-"/"}"
fi
}

Expand All @@ -1227,12 +1200,6 @@ install_redis () {
docker-compose -f $BASE_DIR/redis.yml up -d
elif [ "$INSTALL_REDIS" == "pull" ]; then
docker-compose -f $BASE_DIR/redis.yml pull
elif [ ! -z "$REDIS_HOST" ]; then
establish_conn ${REDIS_HOST} "${REDIS_PORT:-"6379"}" "Redis"
reconfigure REDIS_HOST ${REDIS_HOST}
reconfigure REDIS_PORT "${REDIS_PORT:-"6379"}"
reconfigure REDIS_USER_NAME ${REDIS_USER_NAME}
reconfigure REDIS_PASSWORD ${REDIS_PASSWORD}
fi
}

Expand All @@ -1246,11 +1213,6 @@ install_elasticsearch () {
docker-compose -f $BASE_DIR/opensearch.yml up -d
elif [ "$INSTALL_ELASTICSEARCH" == "pull" ]; then
docker-compose -f $BASE_DIR/opensearch.yml pull
elif [ ! -z "$ELK_HOST" ]; then
establish_conn ${ELK_HOST} "${ELK_PORT:-"9200"}" "search engine"
reconfigure ELK_SHEME "${ELK_SHEME:-"http"}"
reconfigure ELK_HOST ${ELK_HOST}
reconfigure ELK_PORT "${ELK_PORT:-"9200"}"
fi
}

Expand Down Expand Up @@ -1428,6 +1390,46 @@ check_docker_image () {
fi
}

services_check_connection () {
# Fixes issues with variables when upgrading to v1.1.3
HOSTS=("ELK_HOST" "REDIS_HOST" "RABBIT_HOST" "MYSQL_HOST");
for HOST in "${HOSTS[@]}"; do [[ "${!HOST}" == *CONTAINER_PREFIX* || "${!HOST}" == *$PACKAGE_SYSNAME* ]] && export "$HOST="; done
[[ "${APP_URL_PORTAL}" == *${PACKAGE_SYSNAME}-proxy* ]] && APP_URL_PORTAL=""

[[ ! -z "$MYSQL_HOST" ]] && {
establish_conn ${MYSQL_HOST} "${MYSQL_PORT:-3306}" "MySQL"
reconfigure MYSQL_HOST ${MYSQL_HOST}
reconfigure MYSQL_PORT "${MYSQL_PORT:-3306}"
}
[[ ! -z "$DOCUMENT_SERVER_HOST" ]] && {
APP_URL_PORTAL=${APP_URL_PORTAL:-"http://$(curl -s ifconfig.me):${EXTERNAL_PORT}"}
establish_conn ${DOCUMENT_SERVER_HOST} ${DOCUMENT_SERVER_PORT} "${PACKAGE_SYSNAME^^} Docs"
reconfigure DOCUMENT_SERVER_URL_EXTERNAL ${DOCUMENT_SERVER_URL_EXTERNAL}
reconfigure DOCUMENT_SERVER_URL_PUBLIC ${DOCUMENT_SERVER_URL_EXTERNAL}
}
[[ ! -z "$RABBIT_HOST" ]] && {
establish_conn ${RABBIT_HOST} "${RABBIT_PORT:-5672}" "RabbitMQ"
reconfigure RABBIT_HOST ${RABBIT_HOST}
reconfigure RABBIT_PORT "${RABBIT_PORT:-5672}"
reconfigure RABBIT_USER_NAME ${RABBIT_USER_NAME}
reconfigure RABBIT_PASSWORD ${RABBIT_PASSWORD}
reconfigure RABBIT_VIRTUAL_HOST "${RABBIT_VIRTUAL_HOST:-/}"
}
[[ ! -z "$REDIS_HOST" ]] && {
establish_conn ${REDIS_HOST} "${REDIS_PORT:-6379}" "Redis"
reconfigure REDIS_HOST ${REDIS_HOST}
reconfigure REDIS_PORT "${REDIS_PORT:-6379}"
reconfigure REDIS_USER_NAME ${REDIS_USER_NAME}
reconfigure REDIS_PASSWORD ${REDIS_PASSWORD}
}
[[ ! -z "$ELK_HOST" ]] && {
establish_conn ${ELK_HOST} "${ELK_PORT:-9200}" "search engine"
reconfigure ELK_SHEME "${ELK_SHEME:-http}"
reconfigure ELK_HOST ${ELK_HOST}
reconfigure ELK_PORT "${ELK_PORT:-9200}"
}
}

start_installation () {
root_checking

Expand Down Expand Up @@ -1475,6 +1477,8 @@ start_installation () {

check_docker_image

services_check_connection

install_elasticsearch

install_fluent_bit
Expand Down

0 comments on commit 603a11b

Please sign in to comment.