REPO_DIR="$(git rev-parse --show-toplevel 2>/dev/null)"
[ -z "$REPO_DIR" ] && { echo "You must execute under a valid git repository !" ; exit 1 ; }
-SERVICES=${REPO_DIR}/example/diameter/launcher/resources/rest_api/ct/resources/servicesJson-request.json
+SERVICES=${REPO_DIR}/example/diameter/launcher/resources/rest_api/ct/resources/servicesRxJson-request.json
ENDPOINT=http://localhost:8074
PORT=$(echo ${ENDPOINT} | cut -d: -f3)
-C_NAME=anna-adml-http
+SVC_NAME=anna-adml-http
+# Entrypoint arguments (ft/st):
+EXTRA_ARGUMENTS= # default is ft (function test: debug traces and traffic logs)
+
+VARIANT=${1:-Release}
#############
# EXECUTION #
#############
+
+echo
+echo "Variant: ${VARIANT}"
+echo "Remember usage: $0 [variant: <[Release]|Debug]>"
+echo
+
cd $(dirname $0)
# Basic requirement:
echo "Rebuild ADML HTTP service image (y/n) [y]:"
read opt
[ -z "${opt}" ] && opt=y
-[ "${opt}" = "y" ] && ${REPO_DIR}/tools/build-anna-adml-http
+if [ "${opt}" = "y" ]
+then
+ ${REPO_DIR}/tools/build-anna-adml-http ${VARIANT}
+fi
version=$(${REPO_DIR}/tools/version)
-echo "Restart ADML HTTP service image (version '${version}') ..."
-docker kill ${C_NAME} >/dev/null
-cid=$(docker run --rm -d -p ${PORT}:${PORT} --name ${C_NAME} anna-adml-http:${version})
-echo "Container id: ${cid} (deployed as '${C_NAME}')"
+cname=${SVC_NAME}
+[ "${VARIANT}" = "Debug" ] && { version=${version}-debug ; cname=${cname}-debug ; }
+echo "Restart ADML HTTP service image (version '${version}') (y/n) [y]:"
+read opt
+[ -z "${opt}" ] && opt=y
+if [ "${opt}" = "y" ]
+then
+ docker kill ${SVC_NAME} &>/dev/null
+ docker kill ${SVC_NAME}-debug &>/dev/null
+
+ echo "Optimize for system test (disable traffic logs and set warning level for traces) (y/n) [n]:"
+ read opt
+ [ -z "${opt}" ] && opt=n
+ [ "${opt}" = "y" ] && EXTRA_ARGUMENTS=st
+
+ cid=$(docker run --rm -d -p ${PORT}:${PORT} --name ${cname} anna-adml-http:${version} ${EXTRA_ARGUMENTS} >/dev/null)
+ [ $? -ne 0 ] && exit 1
+ echo "Container id: ${cid} (deployed as '${cname}')"
+fi
echo
echo "Configuring services (${SERVICES}) ..."
sleep 4 # wait for docker running
-nghttp -H ":method: POST" -d ${SERVICES} ${ENDPOINT}/services
-echo
+nghttp -H ":method: POST" -d ${SERVICES} ${ENDPOINT}/services | tee .response.json | jq '.'
+result=$(cat .response.json | jq -r '.["success"]')
+rm .response.json
+if [ "${result}" = "false" ]
+then
+ echo
+ echo "Check if another ADML HTTP service (anna-adml-http*) has been started (port ${PORT} busy ?)"
+ exit 1
+fi
echo
echo -n "Waiting for server-client connection ..."
while true
do
- docker exec -it ${C_NAME} bash -c "netstat -p $(pgrep ADML) --numeric-ports | grep -w 3868 | grep -w ESTABLISHED" >/dev/null
+ docker exec -it ${cname} bash -c "netstat -p \$(pgrep ADML) --numeric-ports | grep -w 3868 | grep -w ESTABLISHED" >/dev/null
[ $? -eq 0 ] && break
echo -n .
sleep 1