Ctrl K
ComunidadGuías…

Docker/reset.sh

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#! /bin/bash

export DA_ROOT="${DA_ROOT:-/usr/share/docassemble}"
export DA_DEFAULT_LOCAL="local3.14"
export DA_CONFIG_FILE="${DA_CONFIG:-${DA_ROOT}/config/config.yml}"

export DA_ACTIVATE="${DA_PYTHON:-${DA_ROOT}/${DA_DEFAULT_LOCAL}}/bin/activate"
source "${DA_ACTIVATE}"

export CONTAINERROLE=":${CONTAINERROLE:-all}:"
export HOME=/var/www

source /dev/stdin < <(python -m docassemble.base.read_config "$DA_CONFIG_FILE")

if [ "${DAREADONLYFILESYSTEM:-false}" == "true" ]; then
    echo "Will not reset because read-only file system" >&2
    exit 0
fi

if [ "${DASUPERVISORUSERNAME:-null}" != "null" ]; then
    SUPERVISORCMD="supervisorctl --serverurl http://localhost:9001 --username ${DASUPERVISORUSERNAME} --password ${DASUPERVISORPASSWORD}"
else
    SUPERVISORCMD="supervisorctl --serverurl http://localhost:9001"
fi

restart_web_app() {
    if [ "${DAROOTOWNED:-false}" == "true" ]; then
	if [ "${DAALLOWUPDATES:-true}" == "true" ] \
	   || [ "${DAENABLEPLAYGROUND:-true}" == "true" ] \
	   || [ "${DAALLOWCONFIGURATIONEDITING:-true}" == "true" ]; then
	    echo "`date` starting docassemble.webapp.restart" >&2
	    python -m docassemble.webapp.restart
	    echo "`date` finished docassemble.webapp.restart" >&2
	fi
    else
	echo "`date` starting docassemble.webapp.restart" >&2
	python -m docassemble.webapp.restart
	echo "`date` finished docassemble.webapp.restart" >&2
    fi
}

stop_celery() {
    echo "`date` stopping celery" >&2
    ${SUPERVISORCMD} stop celery || exit 1
}
stop_celery_single() {
    echo "`date` stopping celerysingle" >&2
    ${SUPERVISORCMD} stop celerysingle || exit 1
}
stop_rabbitmq() {
    echo "`date` stopping rabbitmq" >&2
    ${SUPERVISORCMD} stop rabbitmq || exit 1
}
start_celery() {
    echo "`date` starting celery" >&2
    ${SUPERVISORCMD} start celery || exit 1
}
start_celery_single() {
    echo "`date` starting celerysingle" >&2
    ${SUPERVISORCMD} start celerysingle || exit 1
}
start_rabbitmq() {
    echo "`date` starting rabbitmq" >&2
    ${SUPERVISORCMD} start rabbitmq || exit 1
}
update_pip_config(){
    if [ "${PIPINDEXURL:-null}" != "null" ]; then
	pip config set global.index-url "${PIPINDEXURL}"
    else
	pip config unset global.index-url &> /dev/null
    fi

    if [ "${PIPEXTRAINDEXURLS:-null}" != "null" ]; then
	pip config set global.extra-index-url "${PIPEXTRAINDEXURLS}"
    else
	pip config unset global.extra-index-url &> /dev/null
    fi

    if [ "${PIPTRUSTEDHOST:-null}" != "null" ]; then
	pip config set global.trusted-host "${PIPTRUSTEDHOST}"
    else
	pip config set global.trusted-host "github.com" &> /dev/null
    fi
}
restart_websockets() {
    echo "`date` stopping websockets" >&2
    ${SUPERVISORCMD} stop websockets || exit 1
    sleep 1
    echo "`date` starting websockets" >&2
    ${SUPERVISORCMD} start websockets || exit 1
    echo "`date` finished resetting websockets" >&2
}
restart_background() {
    stop_celery &
    pid_celery=$!
    stop_celery_single &
    pid_celery_single=$!
    wait "$pid_celery" "$pid_celery_single"
    if [[ $CONTAINERROLE =~ .*:(all|rabbitmq):.* ]]; then
	stop_rabbitmq
	start_rabbitmq
    fi
    start_celery &
    pid_celery=$!
    start_celery_single &
    pid_celery_single=$!
    wait "$pid_celery" "$pid_celery_single"
    echo "`date` finished resetting background task system" >&2
}

restart_web_app &

if [ "${DAALLOWUPDATES:-true}" == "true" ]; then
    update_pip_config &
fi

if [[ $CONTAINERROLE =~ .*:(all|web):.* ]] && [ "${ENABLEMONITOR:-true}" = "true" ]; then
    restart_websockets &
fi

if [[ $CONTAINERROLE =~ .*:(all|celery):.* ]]; then
    restart_background &
fi

wait

echo "`date` finished reset process" >&2
exit 0