added check lines

This commit is contained in:
gyurix
2024-07-24 14:26:44 +02:00
parent f20adf7217
commit 337498f444

View File

@@ -4,6 +4,11 @@ cd /scripts
DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL:-registry.format.hu}
USER_INIT_PATH=$USER_INIT_PATH
FRAMWEORK_SCHEDULER_NAME=${FRAMEWORK_SCHEDULER_NAME:-framework-scheduler}
FRAMEWORK_SCHEDULER_NETWORK=${FRAMEWORK_SCHEDULER_NETWORK:-framework-network}
FRAMEWORK_NETWORK_SUBNET=${FRAMEWORK_NETWORK_SUBNET:-"172.18.255.0/24"}
WEB_SERVER=${WEB_SERVER:-webserver}
WEB_IMAGE=${WEB_IMAGE:-web-installer}
WEBSERVER_PORT=${WEBSERVER_PORT:-8080}
@@ -16,6 +21,7 @@ REDIS_VERSION=${REDIS_VERSION:-latest}
SOURCE=$SOURCE
SMARTHOST_PROXY_PATH=$SMARTHOST_PROXY_PATH
GIT_URL=$GIT_URL
TOKEN=$TOKEN
REPO=$REPO
@@ -26,6 +32,107 @@ CURL_RETRIES=${CURL_RETRIES:-360}
SCHEDULER_SERVICEFILE_GENERATE_TEST=${SCHEDULER_SERVICEFILE_GENERATE_TEST:-false}
scheduler_manager(){
FRAMEWORK_NAME=$1;
FRAMEWORK_NETWORK=$2;
FRAMEWORK_SUBNET=$3;
FRAMEWORK_UPDATE=$4;
if [ "$FRAMEWORK_NETWORK" == "0" ]; then
echo "Restarting the scheduler with the correct network"
docker network create $FRAMEWORK_SCHEDULER_NETWORK --subnet $FRAMEWORK_NETWORK_SUBNET
if [ "$FRAMEWORK_SUBNET" == "0" ]; then
echo "Restarting the scheduler with the correct subnet"
docker stop $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker rm $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker run -d --name $FRAMEWORK_SCHEDULER_NAME --network $FRAMEWORK_SCHEDULER_NETWORK --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /scripts:/scripts $DOCKER_REGISTRY_URL/$FRAMEWORK_SCHEDULER_NAME
fi
if [ "$FRAMEWORK_NAME" == "0" ]; then
echo "Restarting the scheduler with the correct name"
docker stop $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker rm $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker run -d --name $FRAMEWORK_SCHEDULER_NAME --network $FRAMEWORK_SCHEDULER_NETWORK --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /scripts:/scripts $DOCKER_REGISTRY_URL/$FRAMEWORK_SCHEDULER_NAME
fi
if [ "$FRAMEWORK_UPDATE" == "0" ]; then
echo "Restarting the scheduler with the correct version"
docker stop $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker rm $ACTUAL_FRAMEWORK_SCHEDULER_NAME
docker run -d --name $FRAMEWORK_SCHEDULER_NAME --network $FRAMEWORK_SCHEDULER_NETWORK --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /scripts:/scripts $DOCKER_REGISTRY_URL/$FRAMEWORK_SCHEDULER_NAME
fi
}
check_framework_scheduler_status(){
ACTUAL_FRAMEWORK_SCHEDULER_NAME=$1;
if "$ACTUAL_FRAMEWORK_SCHEDULER_NAME" == "$FRAMEWORK_SCHEDULER_NAME"; then
echo "Scheduler name not correct, not needed to restart is with the correct name";
else
FRAMEWORK_NAME=0;
fi
if [ "$(docker network ls --filter name=^$FRAMEWORK_SCHEDULER_NETWORK$ --format {{.Name}})" ]; then
echo "Network $FRAMEWORK_SCHEDULER_NETWORK is available, not needed to restart the scheduler"
if [ "$(docker network inspect $FRAMEWORK_SCHEDULER_NETWORK --format '{{range .IPAM.Config}}{{.Subnet}}{{end}}')" == "$FRAMEWORK_NETWORK_SUBNET" ]; then
echo "Network $FRAMEWORK_SCHEDULER_NETWORK is available with the correct subnet, not needed to restart the scheduler"
check_framework_network_availabity
else
FRAMEWORK_SUBNET=0;
fi
else
FRAMEWORK_NETWORK=0;
fi
if [ ]; then
else
FRAMEWORK_UPDATE=0;
fi
scheduler_manager $FRAMEWORK_NAME $FRAMEWORK_NETWORK $FRAMEWORK_SUBNET $FRAMEWORK_UPDATE
#echo '{"FRAMEWORK_NAME": "$FRAMEWORK_NAME", "FRAMEWORK_NETWORK": "$FRAMEWORK_NETWORK"}'
}
check_framework_network_availabity() {
if [ -z "$(docker network ls --filter name=^$FRAMEWORK_SCHEDULER_NETWORK$ --format {{.Name}})" ]; then
# Define the subnet you want to check
desired_subnet=$FRAMEWORK_NETWORK_SUBNET
existing_subnets=$(docker network inspect $(docker network ls -q) --format '{{range .IPAM.Config}}{{.Subnet}}{{end}}')
# Check if the desired subnet is in the list of existing subnets
if echo "$existing_subnets" | grep -q "$desired_subnet"; then
echo "Subnet $desired_subnet is not available for creation. Need to find another network"
else
echo "Subnet $desired_subnet is available for creation."
fi
echo "Creating network $FRAMEWORK_SCHEDULER_NETWORK"
docker network create $FRAMEWORK_SCHEDULER_NETWORK --subnet $FRAMEWORK_NETWORK_SUBNET
else
echo "Network $DOCKER_NETWORK_NAME already exists, need to define another name"
fi
}
check_redis_availability() {
REDIS_SERVER="$1"
REDIS_PORT="$2"
@@ -62,13 +169,19 @@ start_webserver () {
/usr/bin/docker run -d -p $WEBSERVER_PORT:80/tcp --name $WEB_SERVER $DOCKER_REGISTRY_URL/$WEB_IMAGE:$WEBSERVER_VERSION
}
###
### SYSTEM INITIALIZATION ###
# CHECKING SYSTEM ENVIRONMENTS
## DOCKER VARIABLES
## DOCKER NETWORK VARIABLES
## VERSION CHECK
## FILESYSTEM VARIABLES
## PORTS VARIABLES
### RESTART SCHEDULER IF NEEDED
check_framework_scheduler_status $HOSTNAME
check_framework_network_availabity
# REDIS_SERVER EXISTENCE
## REDIS_PORT EXISTENCE
@@ -81,8 +194,8 @@ echo `date`" Redis initialized"
start_webserver
echo `date`" Webserver initialized"
# SUMMARY
#### SUMMARY
#########################################
# TESTING
sleep 86400