From 95515c5c4bde2280ae967bf35725a57858f9379b Mon Sep 17 00:00:00 2001 From: Yumeng Bao Date: Tue, 23 Oct 2018 01:51:48 -0700 Subject: [PATCH] Deploy cyborg-api via uwsgi The patch adds the devstack install cyborg-api via uwsgi. Change-Id: I2dc39affb30505f616a6a275f45b497ba742e64b --- devstack/lib/cyborg | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/devstack/lib/cyborg b/devstack/lib/cyborg index 939073f2..7a53f4f3 100644 --- a/devstack/lib/cyborg +++ b/devstack/lib/cyborg @@ -43,12 +43,25 @@ CYBORG_POLICY_JSON=$CYBORG_CONF_DIR/policy.json CYBORG_SERVICE_HOST=${CYBORG_SERVICE_HOST:-$SERVICE_HOST} CYBORG_SERVICE_PORT=${CYBORG_SERVICE_PORT:-6666} CYBORG_SERVICE_PROTOCOL=${CYBORG_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL} + if [[ -d ${CYBORG_DIR}/bin ]]; then CYBORG_BIN_DIR=${CYBORG_DIR}/bin else CYBORG_BIN_DIR=$(get_python_exec_prefix) fi +# Toggle for deploying Cyborg-API under a wsgi server +CYBORG_USE_UWSGI=${CYBORG_USE_UWSGI:-True} + +CYBORG_UWSGI=$CYBORG_BIN_DIR/cyborg-wsgi-api +CYBORG_UWSGI_CONF=$CYBORG_CONF_DIR/cyborg-api-uwsgi.ini + +if [[ "$CYBORG_USE_UWSGI" == "True" ]]; then + CYBORG_API_URL="$CYBORG_SERVICE_PROTOCOL://$CYBORG_SERVICE_HOST/accelerator" +else + CYBORG_API_URL="$CYBORG_SERVICE_PROTOCOL://$CYBORG_SERVICE_HOST:$CYBORG_SERVICE_PORT" +fi + # install_cyborg() - Install the things! function install_cyborg { # make sure all needed service were enabled @@ -75,6 +88,9 @@ function cleanup_cyborg_config_files { # cleanup_cyborg() - Clean everything left from Cyborg function cleanup_cyborg { cleanup_cyborg_config_files + if [[ "$CYBORG_USE_UWSGI" == "True" ]]; then + remove_uwsgi_config "$CYBORG_UWSGI_CONF" "$CYBORG_UWSGI" + fi } @@ -104,9 +120,9 @@ function create_cyborg_accounts { get_or_create_service "cyborg" "accelerator" "Cyborg Accelerators Service" get_or_create_endpoint "cyborg" \ "$REGION_NAME" \ - "${CYBORG_SERVICE_PROTOCOL}://${CYBORG_SERVICE_HOST}:${CYBORG_SERVICE_PORT}/v1" \ - "${CYBORG_SERVICE_PROTOCOL}://${CYBORG_SERVICE_HOST}:${CYBORG_SERVICE_PORT}/v1" \ - "${CYBORG_SERVICE_PROTOCOL}://${CYBORG_SERVICE_HOST}:${CYBORG_SERVICE_PORT}/v1" + "$CYBORG_API_URL/v1" \ + "$CYBORG_API_URL/v1" \ + "$CYBORG_API_URL/v1" } @@ -147,6 +163,10 @@ function configure_cyborg_api { iniset_rpc_backend cyborg $CYBORG_CONF_FILE iniset $CYBORG_CONF_FILE conductor automated_clean $CYBORG_AUTOMATED_CLEAN_ENABLED + + if [ "$CYBORG_USE_UWSGI" == "True" ]; then + write_uwsgi_config "$CYBORG_UWSGI_CONF" "$CYBORG_UWSGI" "/accelerator" + fi } function configure_auth_for { @@ -256,7 +276,11 @@ function start_cyborg { # start_cyborg_api() - Used by start_cyborg(). # Starts Cyborg API server. function start_cyborg_api { - run_process cyborg-api "$CYBORG_BIN_DIR/cyborg-api --config-file=$CYBORG_CONF_FILE" + if [ "$CYBORG_USE_UWSGI" == "True" ]; then + run_process cyborg-api "$CYBORG_BIN_DIR/uwsgi --ini $CYBORG_UWSGI_CONF" + else + run_process cyborg-api "$CYBORG_BIN_DIR/cyborg-api --config-file $CYBORG_CONF_FILE" + fi } # start_cyborg_conductor() - Used by start_cyborg(). @@ -273,7 +297,12 @@ function start_cyborg_agent { # stop_cyborg() - Stop running processes function stop_cyborg { - stop_process cyborg-api + if [ "$CYBORG_USE_UWSGI" == "True" ]; then + disable_apache_site cyborg-api + restart_apache_server + else + stop_process cyborg-api + fi stop_process cyborg-cond stop_process cyborg-agent }