Make configurable the start arguments for ADML
[anna.git] / example / diameter / launcher / resources / rest_api / ct / ct.sh
index 3fe561d..fc69e8f 100755 (executable)
@@ -7,14 +7,24 @@
 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:
@@ -26,25 +36,50 @@ echo
 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