#!/bin/bash

# Move to a new ip

# Exit on any errors
set -e

cartridge_type="haproxy-1.4"
source "/etc/openshift/node.conf"
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/util
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/apache
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/network

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

[ $# -eq 3 ] || [ $# -eq 4 ] || print_help

namespace=`basename $2`
application="$1"
uuid=$3
idle=false
if [ "$4" == "--idle" ]
then
  idle=true
fi

setup_basic_vars

CART_INFO_DIR=$CARTRIDGE_BASE_PATH/$cartridge_type/info
HAPROXY_DIR=$(get_cartridge_instance_dir "$cartridge_type")


observe_setup_cart_instance_dir
observe_setup_var_lib_dir "$HAPROXY_DIR/.ssh/"

#
# Find an open localhost IP
#
INT_IP=`find_open_ip $uid $uuid`
echo "export OPENSHIFT_INTERNAL_IP='$INT_IP'" > $APP_HOME/.env/OPENSHIFT_INTERNAL_IP
export IP=`embedded_find_open_ip $uid "$APP_HOME"`
echo "export OPENSHIFT_HAPROXY_INTERNAL_IP='$IP'" > "$APP_HOME/.env/OPENSHIFT_HAPROXY_INTERNAL_IP"
export IP2=`embedded_find_open_ip $uid "$APP_HOME"`
echo "export OPENSHIFT_HAPROXY_STATUS_IP='$IP2'" > "$APP_HOME/.env/OPENSHIFT_HAPROXY_STATUS_IP"
if [ -f $CART_INFO_DIR/bin/deploy_httpd_config.sh ]
then
  $CART_INFO_DIR/bin/deploy_httpd_config.sh $application $uuid $IP
fi
run_as_user "${CARTRIDGE_BASE_PATH}/abstract/info/bin/redeploy_config_dir.sh"

. $APP_HOME/.env/OPENSHIFT_INTERNAL_IP

#
# Create virtualhost definition for apache
#
export CART_INFO_DIR
if [ -f $CART_INFO_DIR/bin/deploy_httpd_proxy.sh ]
then
  $CART_INFO_DIR/bin/deploy_httpd_proxy.sh $application $namespace $uuid $IP
else
  $CARTRIDGE_BASE_PATH/abstract/info/bin/deploy_httpd_proxy.sh $application $namespace $uuid $OPENSHIFT_INTERNAL_IP
fi

if $idle
then
  oo-idler -u $uuid
fi

restart_httpd_graceful
