#!/bin/bash

# Destroys haproxy instance
CART_NAME="haproxy"
CART_VERSION="1.4"


function print_help {
    echo "Usage: $0 app-name namespace uuid"

    echo "$0 $@" | logger -p local0.notice -t openshift_origin_haproxy_deconfigure
    exit 1
}

while getopts 'd' OPTION
do
    case $OPTION in
        d) set -x
        ;;
        ?) print_help
        ;;
    esac
done

[ $# -eq 3 ] || print_help

cartridge_type="$CART_NAME-$CART_VERSION"
source /etc/openshift/node.conf
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/util
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/git

setup_embedded_deconfigure "$1" $2 $3
disable_cgroups

CART_INFO_DIR=${CARTRIDGE_BASE_PATH}/embedded/$cartridge_type/info

source_if_exists "$APP_HOME/.env/OPENSHIFT_APP_NAME"

HAPROXY_DIR=$(get_cartridge_instance_dir "$cartridge_type")

#
# Teardown port proxy (ignore failures or missing hook)
#
( ${CART_INFO_DIR}/hooks/conceal-port "$1" $2 $3 ) &>/dev/null || :

# Remove PATH override
OLD_PATH=$PATH
source ${GEAR_BASE_DIR}/${uuid}/.env/PATH

# Stop old apps
stop_app
confirm_log_files_inactive "$HAPROXY_DIR/logs"

# Remove PATH override
export PATH=`echo "$PATH" | sed "s,$CART_INFO_DIR/bin/:,,g"`

echo "export PATH=$PATH" > ${GEAR_BASE_DIR}/${uuid}/.env/PATH
export PATH=$OLD_PATH

kill `cat ${HAPROXY_DIR}/run/haproxy.pid`
confirm_pid_gone "${HAPROXY_DIR}/run/haproxy.pid"

# Remove haproxy dir. This MUST be after stopping haproxy as the CTL script relies on these.
rm -rf $HAPROXY_DIR/.ssh
rm_cartridge_instance_dir "$cartridge_type"

rm -rf ${APP_HOME}/.openshift
rm -f /etc/httpd/conf.d/openshift/${uuid}_${namespace}_${application}/000000_haproxy.conf

if [ "$application" != "$OPENSHIFT_APP_NAME" ]; then
   rm -rf "/etc/httpd/conf.d/openshift/${uuid}_${namespace}_${OPENSHIFT_APP_NAME}.conf" "/etc/httpd/conf.d/openshift/${uuid}_${namespace}_${OPENSHIFT_APP_NAME}"
fi

$CART_INFO_DIR/hooks/pre-destroy "$@"

# Got here if its haproxy embedded and got removed - so start up all apps with
# the new path (IE: without haproxy)
start_app
enable_cgroups
