#!/bin/bash

# Start the application httpd instance

function print_help {
    echo "Usage: $0 app-name namespace uuid"
    echo "Start a running application"

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

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


[ $# -eq 3 ] || print_help

source "/etc/openshift/node.conf"
source ${CARTRIDGE_BASE_PATH}/abstract/info/lib/util

CART_NS=$(get_cartridge_namespace_from_path)

setup_configure "$1" $2 $3

import_env_vars

OPENSHIFT_JBOSS_CLUSTER_PORT=$(get_env_var_dynamic "OPENSHIFT_${CART_NS}_CLUSTER_PORT")

proxy_port=$(find_next_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:$OPENSHIFT_INTERNAL_PORT")
ret=$?
if [ $ret -ne 0 ]; then
  client_error "$proxy_port"
  exit $ret
fi

cluster_port=$(find_next_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:$OPENSHIFT_JBOSS_CLUSTER_PORT")
ret=$?
if [ $ret -ne 0 ]; then
  remove_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:$OPENSHIFT_INTERNAL_PORT" &>/dev/null || :
  client_error "$cluster_port"
  exit $ret
fi

messaging_port=$(find_next_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:5445")
ret=$?
if [ $ret -ne 0 ]; then
  remove_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:5445" &>/dev/null || :
  client_error "$messaging_port"
  exit $ret
fi

messaging_throughput_port=$(find_next_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:5455")
ret=$?
if [ $ret -ne 0 ]; then
  remove_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:5455" &>/dev/null || :
  client_error "$messaging_throughput_port"
  exit $ret
fi

remoting_port=$(find_next_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:4447")
ret=$?
if [ $ret -ne 0 ]; then
  remove_proxy_port $uuid "$OPENSHIFT_INTERNAL_IP:4447" &>/dev/null || :
  client_error "$remoting_port"
  exit $ret
fi

echo "export OPENSHIFT_${CART_NS}_PROXY_PORT=$proxy_port" > $APP_HOME/.env/OPENSHIFT_${CART_NS}_PROXY_PORT
cart_data "PROXY_HOST=$OPENSHIFT_GEAR_DNS"
cart_data "PROXY_PORT=$proxy_port"
cart_data "HOST=$OPENSHIFT_INTERNAL_IP"
cart_data "PORT=$OPENSHIFT_INTERNAL_PORT"


echo "export OPENSHIFT_${CART_NS}_CLUSTER_PROXY_PORT=$cluster_port" > $APP_HOME/.env/OPENSHIFT_${CART_NS}_CLUSTER_PROXY_PORT
cart_data "${CART_NS}_CLUSTER_PROXY_HOST=$OPENSHIFT_GEAR_DNS"
cart_data "${CART_NS}_CLUSTER_PROXY_PORT=$cluster_port"
cart_data "${CART_NS}_CLUSTER_HOST=$OPENSHIFT_INTERNAL_IP"
cart_data "${CART_NS}_CLUSTER_PORT=$OPENSHIFT_JBOSS_CLUSTER_PORT"

echo "export OPENSHIFT_${CART_NS}_MESSAGING_PORT=$messaging_port" > $APP_HOME/.env/OPENSHIFT_${CART_NS}_MESSAGING_PORT
cart_data "${CART_NS}_MESSAGING_PORT=$messaging_port"

echo "export OPENSHIFT_${CART_NS}_MESSAGING_THROUGHPUT_PORT=$messaging_throughput_port" > $APP_HOME/.env/OPENSHIFT_${CART_NS}_MESSAGING_THROUGHPUT_PORT
cart_data "${CART_NS}_MESSAGING_THROUGHPUT_PORT=$messaging_throughput_port"

echo "export OPENSHIFT_${CART_NS}_REMOTING_PORT=$remoting_port" > $APP_HOME/.env/OPENSHIFT_${CART_NS}_REMOTING_PORT
cart_data "${CART_NS}_REMOTING_PORT=$remoting_port"


exit 0
