Compare commits
	
		
			17 Commits
		
	
	
		
			1.0.1
			...
			c5765ca952
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c5765ca952 | |||
| 2bcf430dfd | |||
|  | bc7d30ea59 | ||
|  | e23001223c | ||
|  | 4a7a854f6f | ||
|  | 5804346e42 | ||
|  | 43fcc62014 | ||
|  | a9ba3698bd | ||
|  | 8e3a28334e | ||
| f808a394aa | |||
|  | 97398388d6 | ||
|  | 0839a78d41 | ||
| 43b529d2d0 | |||
| 81cc2b14ab | |||
|  | 42c3275e19 | ||
| 283b42bce1 | |||
|  | fe5ffd3add | 
| @@ -160,6 +160,63 @@ remove_additionals() { | |||||||
|  |  | ||||||
|     debug "UNINSTALL: $NAME" |     debug "UNINSTALL: $NAME" | ||||||
|  |  | ||||||
|  |     # delete firewall rules | ||||||
|  |     FIREWALLS="" | ||||||
|  |     FIREWALLS="$(ls $SERVICE_DIR/firewall-*.json | grep $NAME)" | ||||||
|  |     for FIREWALL in $(echo $FIREWALLS); do | ||||||
|  |         cat $FIREWALL | jq '.containers[] |= ( | ||||||
|  |         if (.ENVS | map(has("OPERATION")) | any) then | ||||||
|  |             # If any entry has OPERATION key, update it | ||||||
|  |             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||||
|  |         else | ||||||
|  |             # If no entry has OPERATION key, add new entry | ||||||
|  |             .ENVS += [{"OPERATION": "DELETE"}] | ||||||
|  |         end | ||||||
|  |         )' >$FIREWALL.tmp | ||||||
|  |         debug "$service_exec $FIREWALL.tmp start info" | ||||||
|  |         $service_exec $FIREWALL.tmp start info | ||||||
|  |         rm $FIREWALL.tmp | ||||||
|  |     done | ||||||
|  |  | ||||||
|  |     # delete domains | ||||||
|  |     DOMMAINS="" | ||||||
|  |     DOMAINS="$(ls $SERVICE_DIR/domain-*.json | grep $NAME)" | ||||||
|  |     for DOMAIN in $(echo $DOMAINS); do | ||||||
|  |         cat $DOMAIN | jq '.containers[] |= ( | ||||||
|  |         if (.ENVS | map(has("OPERATION")) | any) then | ||||||
|  |             # If any entry has OPERATION key, update it | ||||||
|  |             .ENVS = [.ENVS[] | if has("OPERATION") then {"OPERATION": "DELETE"} else . end] | ||||||
|  |         else | ||||||
|  |             # If no entry has OPERATION key, add new entry | ||||||
|  |             .ENVS += [{"OPERATION": "DELETE"}] | ||||||
|  |         end | ||||||
|  |         )' >$DOMAIN.tmp | ||||||
|  |         debug "$service_exec $DOMAIN.tmp start info" | ||||||
|  |         $service_exec $DOMAIN.tmp start info | ||||||
|  |         rm $DOMAIN.tmp | ||||||
|  |     done | ||||||
|  |  | ||||||
|  |     # remove related directories and files | ||||||
|  |     # get volume destinations | ||||||
|  |     DESTINATIONS="" | ||||||
|  |     VOLUMES="" | ||||||
|  |     DESTINATIONS=$(cat $SERVICE_DIR/service-$NAME.json | jq -r '[.containers[] | select(has("VOLUMES")) | .VOLUMES[] | select(.SHARED != "true") | .SOURCE] | unique[]' | grep $NAME) | ||||||
|  |     for DESTINATION in $(echo $DESTINATIONS); do | ||||||
|  |         if [ -d "$DESTINATION" ] || [ -f "$DESTINATION" ]; then | ||||||
|  |             rm -rf $DESTINATION | ||||||
|  |             debug "deleted directory or file: $DESTINATION" | ||||||
|  |         fi | ||||||
|  |     done | ||||||
|  |  | ||||||
|  |     VOLUMES=$(cat $SERVICE_DIR/service-$NAME.json | jq -r '[.containers[] | select(has("VOLUMES")) | .VOLUMES[] | select(.SHARED != "true") | .SOURCE] | unique[]' | grep -vE 'USER|SYSTEM') | ||||||
|  |     for VOLUME in $(echo $VOLUMES); do | ||||||
|  |         if [ "$(echo $VOLUME | cut -d '/' -f1)" ]; then | ||||||
|  |             docker volume rm $VOLUME | ||||||
|  |             debug "deleted volume: $VOLUME" | ||||||
|  |  | ||||||
|  |         fi | ||||||
|  |     done | ||||||
|  |  | ||||||
|     # stop service |     # stop service | ||||||
|     # force - remove stopped container, docker rm |     # force - remove stopped container, docker rm | ||||||
|     debug "$service_exec service-$NAME.json stop force dns-remove" |     debug "$service_exec service-$NAME.json stop force dns-remove" | ||||||
| @@ -167,7 +224,7 @@ remove_additionals() { | |||||||
|  |  | ||||||
|     # remove service files |     # remove service files | ||||||
|     rm $SERVICE_DIR/*"-"$NAME.json # service, domain, etc. |     rm $SERVICE_DIR/*"-"$NAME.json # service, domain, etc. | ||||||
|     rm $SECRET_DIR/$NAME/$NAME.json |  | ||||||
| } | } | ||||||
|  |  | ||||||
| get_repositories() { | get_repositories() { | ||||||
| @@ -182,10 +239,10 @@ get_repositories() { | |||||||
|  |  | ||||||
|         BASE=$(basename $REPO | cut -d '.' -f1) |         BASE=$(basename $REPO | cut -d '.' -f1) | ||||||
|         if [ ! -d "/tmp/$BASE" ]; then |         if [ ! -d "/tmp/$BASE" ]; then | ||||||
|             git clone $REPO /tmp/$BASE >/dev/null |             GIT_HTTP_CONNECT_TIMEOUT=10 GIT_HTTP_TIMEOUT=30 git clone $REPO /tmp/$BASE >/dev/null | ||||||
|         else |         else | ||||||
|             cd /tmp/$BASE |             cd /tmp/$BASE | ||||||
|             git pull >/dev/null |             GIT_HTTP_CONNECT_TIMEOUT=10 GIT_HTTP_TIMEOUT=30 git pull >/dev/null | ||||||
|         fi |         fi | ||||||
|         if [ -f "/tmp/$BASE/applications-tree.json" ]; then |         if [ -f "/tmp/$BASE/applications-tree.json" ]; then | ||||||
|             TREES=$TREES" /tmp/$BASE/applications-tree.json" |             TREES=$TREES" /tmp/$BASE/applications-tree.json" | ||||||
| @@ -550,16 +607,19 @@ upgrade() { | |||||||
|  |  | ||||||
|     if [ "$NAME" == "web-installer" ]; then |     if [ "$NAME" == "web-installer" ]; then | ||||||
|  |  | ||||||
|         debug "$service_exec service-framework-scheduler.containers.webserver start info" |         debug "$service_exec service-framework.containers.webserver stop force" | ||||||
|         $service_exec service-framework-scheduler.containers.webserver stop force |         $service_exec service-framework.containers.webserver stop force | ||||||
|         $service_exec service-framework-scheduler.containers.webserver start info & |         debug "$service_exec service-framework.containers.webserver start info" | ||||||
|  |         $service_exec service-framework.containers.webserver start info & | ||||||
|  |  | ||||||
|     else |     else | ||||||
|  |  | ||||||
|         debug "$service_exec $NAME.json start info" |         debug "$service_exec $NAME.json stop force" | ||||||
|         $service_exec $NAME.json stop force |         $service_exec $NAME.json stop force | ||||||
|  |         debug "$service_exec $NAME.json start info" | ||||||
|         $service_exec $NAME.json start info & |         $service_exec $NAME.json start info & | ||||||
|     fi |     fi | ||||||
|  |     PID=$! | ||||||
| } | } | ||||||
|  |  | ||||||
| execute_task() { | execute_task() { | ||||||
| @@ -594,7 +654,7 @@ execute_task() { | |||||||
|         #fi; |         #fi; | ||||||
|         JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "INSTALL_STATUS": "'$INSTALL_STATUS'" }' | jq -r . | base64 -w0) |         JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "INSTALL_STATUS": "'$INSTALL_STATUS'" }' | jq -r . | base64 -w0) | ||||||
|  |  | ||||||
|     elif [ "$TASK_NAME" == "letsencrypt" ]; then |     elif [ "$TASK_NAME" == "request_letsencrypt" ]; then | ||||||
|         DOMAINS=$(echo $B64_JSON | base64 -d | jq -r 'keys[]') |         DOMAINS=$(echo $B64_JSON | base64 -d | jq -r 'keys[]') | ||||||
|         for DOMAIN in $(echo $DOMAINS); do |         for DOMAIN in $(echo $DOMAINS); do | ||||||
|             REQUEST=$(echo $B64_JSON | base64 -d | jq -r ".[\"$DOMAIN\"].status") |             REQUEST=$(echo $B64_JSON | base64 -d | jq -r ".[\"$DOMAIN\"].status") | ||||||
| @@ -604,6 +664,7 @@ execute_task() { | |||||||
|                 touch /etc/system/data/ssl/keys/$DOMAIN/new_certificate |                 touch /etc/system/data/ssl/keys/$DOMAIN/new_certificate | ||||||
|             fi |             fi | ||||||
|         done |         done | ||||||
|  |         JSON_TARGET=$B64_JSON | ||||||
|  |  | ||||||
|     elif [ "$TASK_NAME" == "system" ]; then |     elif [ "$TASK_NAME" == "system" ]; then | ||||||
|         #SYSTEM_LIST="core-dns.json cron.json domain-local-backend.json firewall-letsencrypt.json firewall-local-backend.json firewall-localloadbalancer-dns.json firewall-localloadbalancer-to-smarthostbackend.json firewall-smarthost-backend-dns.json firewall-smarthost-loadbalancer-dns.json firewall-smarthost-to-backend.json firewall-smarthostloadbalancer-from-publicbackend.json letsencrypt.json local-backend.json local-proxy.json service-framework.json smarthost-proxy-scheduler.json smarthost-proxy.json" |         #SYSTEM_LIST="core-dns.json cron.json domain-local-backend.json firewall-letsencrypt.json firewall-local-backend.json firewall-localloadbalancer-dns.json firewall-localloadbalancer-to-smarthostbackend.json firewall-smarthost-backend-dns.json firewall-smarthost-loadbalancer-dns.json firewall-smarthost-to-backend.json firewall-smarthostloadbalancer-from-publicbackend.json letsencrypt.json local-backend.json local-proxy.json service-framework.json smarthost-proxy-scheduler.json smarthost-proxy.json" | ||||||
| @@ -903,15 +964,20 @@ execute_task() { | |||||||
|         CONTAINERS=$(docker ps -a --format '{{.Names}} {{.Status}}' | grep -v framework-scheduler) |         CONTAINERS=$(docker ps -a --format '{{.Names}} {{.Status}}' | grep -v framework-scheduler) | ||||||
|         RESULT=$(echo "$CONTAINERS" | base64 -w0) |         RESULT=$(echo "$CONTAINERS" | base64 -w0) | ||||||
|         JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "RESULT": "'$RESULT'" }' | jq -r . | base64 -w0) |         JSON_TARGET=$(echo '{ "DATE": "'$DATE'", "RESULT": "'$RESULT'" }' | jq -r . | base64 -w0) | ||||||
|  |  | ||||||
|     elif [ "$TASK_NAME" == "upgrade" ]; then |     elif [ "$TASK_NAME" == "upgrade" ]; then | ||||||
|         JSON="$(echo $B64_JSON | base64 -d)" |         JSON="$(echo $B64_JSON | base64 -d)" | ||||||
|         NAME=$(echo "$JSON" | jq -r .NAME | awk '{print tolower($0)}') |         NAME=$(echo "$JSON" | jq -r .NAME | awk '{print tolower($0)}') | ||||||
|         if [ "$NAME" == "framework" ]; then |         if [ "$NAME" == "framework" ]; then | ||||||
|             upgrade_scheduler |             upgrade_scheduler | ||||||
|             upgrade "web-installer" |             upgrade "web-installer" | ||||||
|  |             #CONTAINERS=$(docker ps -a --format '{{.Names}} {{.Status}}' | grep -E 'framework-scheduler|webserver') | ||||||
|         else |         else | ||||||
|             upgrade "$NAME" |             upgrade "$NAME" | ||||||
|  |             #CONTAINERS=$(docker ps -a --format '{{.Names}} {{.Status}}' | grep -w "$NAME") | ||||||
|         fi |         fi | ||||||
|  |         #RESULT=$(echo "$CONTAINERS" | base64 -w0) | ||||||
|  |         sh /scripts/check_pid.sh "$PID" "$SHARED" "$TASK_NAME-$NAME" "$DATE" "$DEBUG" & | ||||||
|     fi |     fi | ||||||
|  |  | ||||||
|     if [ "$TASK_NAME" != "check_vpn" ]; then |     if [ "$TASK_NAME" != "check_vpn" ]; then | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user