aboutsummaryrefslogtreecommitdiffstats
path: root/development/bin
diff options
context:
space:
mode:
authorJakub Dudycz <jakub.dudycz@nokia.com>2019-06-21 17:19:49 +0200
committerJakub Dudycz <jakub.dudycz@nokia.com>2019-07-03 11:49:14 +0200
commit83a1d39bca162e8fdabfb3ad9189c5e4f94a44df (patch)
treec0ee3c382cb9072c0fdd21f46649ada824852c5c /development/bin
parent3449b38b23fe1952a534ab35c5a23105c13e8262 (diff)
Create script to run performance test locally
Change-Id: I6bbf0e9b029aef1558008286f0fbec83b76be44c Signed-off-by: Jakub Dudycz <jakub.dudycz@nokia.com> Issue-ID: DCAEGEN2-1641
Diffstat (limited to 'development/bin')
-rwxr-xr-xdevelopment/bin/constants.sh22
-rwxr-xr-xdevelopment/bin/consul.sh81
-rwxr-xr-xdevelopment/bin/dcae-msgs.sh71
-rwxr-xr-xdevelopment/bin/dcae-reset.sh72
-rwxr-xr-xdevelopment/bin/dcae-topic.sh72
-rwxr-xr-xdevelopment/bin/run-xnf-simulator.sh108
-rwxr-xr-xdevelopment/bin/start-simulation.sh289
-rwxr-xr-xdevelopment/bin/xnf-simulation.sh112
8 files changed, 0 insertions, 827 deletions
diff --git a/development/bin/constants.sh b/development/bin/constants.sh
deleted file mode 100755
index f0df9b00..00000000
--- a/development/bin/constants.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2019 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-DCAE_APP_HOSTNAME=localhost
-DCAE_APP_PORT=6064
-DCAE_APP_ADDRESS=${DCAE_APP_HOSTNAME}:${DCAE_APP_PORT} \ No newline at end of file
diff --git a/development/bin/consul.sh b/development/bin/consul.sh
deleted file mode 100755
index 5f9271f2..00000000
--- a/development/bin/consul.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-usage() {
- echo "Put HV-VES configuration into Consul key-value store"
- echo "Usage: $0 [-h|--help] [-v|--verbose] [domain [topic]]"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True
- ;;
- help)
- usage
- ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage
- ;;
- esac
- ;;
- v)
- VERBOSE=True
- ;;
- h)
- usage
- ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-DOMAIN=${1:-perf3gpp}
-TOPIC=${2:-HV_VES_PERF3GPP}
-
-CONFIGURATION="{
- \"streams_publishes\": {
- \"${DOMAIN}\": {
- \"type\": \"kafka\",
- \"kafka_info\": {
- \"bootstrap_servers\": \"message-router-kafka:9092\",
- \"topic_name\": \"${TOPIC}\"
- }
- }
- }
-}"
-CONFIGURATION_ENDPOINT=localhost:8500/v1/kv/dcae-hv-ves-collector
-
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "Configuration: ${CONFIGURATION}"
- echo "Putting configuration under ${CONFIGURATION_ENDPOINT}"
-fi
-curl --request PUT ${CONFIGURATION_ENDPOINT} -d "${CONFIGURATION}"
-echo
diff --git a/development/bin/dcae-msgs.sh b/development/bin/dcae-msgs.sh
deleted file mode 100755
index 84cef972..00000000
--- a/development/bin/dcae-msgs.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-usage() {
- echo "Return current amount of consumed messages by dcae-app-simulator on given topic"
- echo "Usage: $0 [-h|--help] [-v|--verbose] <topic>"
- echo ""
- echo " - topic : kafka topic to retrieve messages from, default `HV_VES_PERF3GPP`"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True
- ;;
- help)
- usage
- ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage
- ;;
- esac
- ;;
- v)
- VERBOSE=True
- ;;
- h)
- usage
- ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-TOPIC=${1:-HV_VES_PERF3GPP}
-
-DEVELOPMENT_BIN_DIRECTORY=$(realpath $(dirname "$0"))
-source ${DEVELOPMENT_BIN_DIRECTORY}/constants.sh
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "All messages count currently consumed by dcae app simulator on topic ${TOPIC}: "
-fi
-
-curl --request GET ${DCAE_APP_ADDRESS}/messages/${TOPIC}/count
-echo
diff --git a/development/bin/dcae-reset.sh b/development/bin/dcae-reset.sh
deleted file mode 100755
index d2d8ebd0..00000000
--- a/development/bin/dcae-reset.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-
-usage() {
- echo "Resets dcae-app-simulator consumed messages count on given topic"
- echo "Usage: $0 [-h|--help] [-v|--verbose] <topic>"
- echo ""
- echo " - topic : kafka topic to reset consumer for, default 'HV_VES_PERF3GPP'"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True
- ;;
- help)
- usage
- ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage
- ;;
- esac
- ;;
- v)
- VERBOSE=True
- ;;
- h)
- usage
- ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-TOPIC=${1:-HV_VES_PERF3GPP}
-
-DEVELOPMENT_BIN_DIRECTORY=$(realpath $(dirname "$0"))
-source ${DEVELOPMENT_BIN_DIRECTORY}/constants.sh
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "Requesting DCAE app running on port ${DCAE_APP_PORT} to reset messages count"
-fi
-
-curl --request DELETE ${DCAE_APP_ADDRESS}/messages/${TOPIC}
-echo
diff --git a/development/bin/dcae-topic.sh b/development/bin/dcae-topic.sh
deleted file mode 100755
index b4c2638d..00000000
--- a/development/bin/dcae-topic.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-usage() {
- echo "Set dcae-app-simulator to start consuming messages from given comma-separated topics (HV_VES_PERF3GPP by default)"
- echo "Usage: $0 [-h|--help] [-v|--verbose] [topics]"
- echo ""
- echo "Example invocations:"
- echo "./dcae-topic.sh FAULT_TOPIC,HEARTBEAT_TOPIC,HV_VES_PERF3GPP"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True
- ;;
- help)
- usage
- ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage
- ;;
- esac
- ;;
- v)
- VERBOSE=True
- ;;
- h)
- usage
- ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-DEVELOPMENT_BIN_DIRECTORY=$(realpath $(dirname "$0"))
-source ${DEVELOPMENT_BIN_DIRECTORY}/constants.sh
-
-TOPIC=${1:-HV_VES_PERF3GPP}
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "Requesting DCAE app running on ${DCAE_APP_ADDRESS} to consume messages from topics: ${TOPIC}"
-fi
-
-curl --request PUT ${DCAE_APP_ADDRESS}/configuration/topics -d ${TOPIC}
-echo \ No newline at end of file
diff --git a/development/bin/run-xnf-simulator.sh b/development/bin/run-xnf-simulator.sh
deleted file mode 100755
index e4d8d94a..00000000
--- a/development/bin/run-xnf-simulator.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-usage() {
- echo "Start xnf-simulator container on given port and inside of given docker-network"
- echo "Usage: $0 [-h|--help] [-v|--verbose] [--ssl-disable] <xnf listen port> [<hv ves hostname> <hv ves port> <hv ves docker network>]"
- echo ""
- echo "Optional parameters:"
- echo " - ssl-disable : Should xNF simulator be configured without using SSL/TLS connections"
- echo "Default values:"
- echo " - hv ves hostname: ves-hv-collector"
- echo " - hv ves port: 6061"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True ;;
- ssl-disable)
- SSL_DISABLE=True ;;
- help)
- usage ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage ;;
- esac ;;
- v)
- VERBOSE=True ;;
- h)
- usage ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage ;;
- esac
-done
-shift $((OPTIND-1))
-
-[ $# -eq 0 ] && usage
-
-
-LISTEN_PORT=$1
-HV_VES_HOSTNAME=${2:-ves-hv-collector}
-HV_VES_PORT=${3:-6061}
-if [ $# -gt 3 ]; then
- HV_VES_NETWORK=${4}
-fi
-
-PORTS="${LISTEN_PORT}:${LISTEN_PORT}/tcp"
-HV_VES_REPO_HOME=$(realpath $(dirname "$0"))/..
-
-if [ -n "${SSL_DISABLE+x}" ]; then
- SSL_CONFIGURATION="--ssl-disable"
-else
- SSL_CONFIGURATION="--key-store-password onaponap --trust-store-password onaponap"
-fi
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "Starting xnf-simulator with "
- echo " - ports configuration: ${PORTS}"
- echo " - SSL configuration: ${SSL_CONFIGURATION}"
- echo "Container id:"
-fi
-
-
-XNF_CONTAINER_ID=$(docker run -d \
- -v ${HV_VES_REPO_HOME}/ssl/:/etc/ves-hv/ \
- --health-cmd='curl -s -f http://localhost:6063/health/ready || exit 1' \
- --health-interval=5s \
- --health-retries=3 \
- --health-start-period='10s' \
- -p ${PORTS} \
- onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-xnf-simulator \
- --listen-port ${LISTEN_PORT} \
- --health-check-api-port 6063 \
- --ves-host ${HV_VES_HOSTNAME} \
- --ves-port ${HV_VES_PORT} \
- ${SSL_CONFIGURATION})
-
-echo $XNF_CONTAINER_ID
-
-if [ -n "${HV_VES_NETWORK+x}" ]; then
- if [ -n "${VERBOSE+x}" ]; then
- echo "Adding container to network: ${HV_VES_NETWORK}"
- fi
- docker network connect ${HV_VES_NETWORK} ${XNF_CONTAINER_ID}
-fi
diff --git a/development/bin/start-simulation.sh b/development/bin/start-simulation.sh
deleted file mode 100755
index 8c63ddbb..00000000
--- a/development/bin/start-simulation.sh
+++ /dev/null
@@ -1,289 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-
-function usage() {
- echo ""
- echo "Send messages to hv-ves from multiple xNF simulators"
- echo "Usage: $0 [-h|--help] [-v|--verbose] [--ssl-disable]"
- echo " [--messages-in-batch=ARG] [--docker-network=ARG] [--xnf-logs-directory=ARG]"
- echo " <hv ves hostname> <hv ves port> <simulators amount> <messages batches amount per simulator> <messages sending interval>"
- echo ""
- echo " - hv ves hostname : HighVolume VES Collector network hostname"
- echo " - hv ves port : HighVolume VES Collector network port"
- echo " - simulators amount : Amount of xNF simulators to be launched"
- echo " - messages batches amount per simulator : Amount of batches of messages to be sent from each xNF simulator to HV-VES"
- echo " - messages sending interval : interval in seconds between sending batches of messages from xNFs"
- echo "Optional parameters:"
- echo " - ssl-disable : Should xNF simulator be configured without using SSL/TLS connections"
- echo " - messages-in-batch : Amount of messages sent on each request"
- echo " - docker-network : Docker network to which xNF simulators should be added"
- echo " - xnf-logs-directory : Path to directory where logs from all xNF simulators should be stored"
- echo "Example invocations:"
- echo "./start-simulation.sh --messages-in-batch=5 --docker-network=development_default ves-hv-collector 6061 10 20 0.5"
- echo "./start-simulation.sh --messages-in-batch=5 --xnf-logs-directory=/tmp/xnf-simulation localhost 6061 10 20 0.5"
- echo "Invocation with remote HV-VES host (Kubernetes slave IP given with default K8S NodePort for HV-VES service):"
- echo "./start-simulation.sh --ssl-disable --xnf-logs-directory=/tmp/xnf-simulation 10.183.36.78 30222 5 100 5"
- exit 1
-}
-
-function verbose_log() {
- if [ -n "${VERBOSE+x}" ]; then
- echo $@
- fi
-}
-
-function create_logs_dir() {
- if [ -n "${XNF_LOGS_DIRECTORY+x}" ]; then
- if [ ! -d "${XNF_LOGS_DIRECTORY}" ]; then
- mkdir ${XNF_LOGS_DIRECTORY}
- fi
- fi
-}
-
-function create_xNFs_simulators() {
- echo "Creating ${XNFS_AMOUNT} xNFs simulators"
- [ -n "${SSL_DISABLE+x}" ] && verbose_log "--ssl-disable flag will be set inside containers."
- for i in $(seq 1 ${XNFS_AMOUNT}); do
- local XNF_PORT=$(get_unoccupied_port 32000 65000)
- verbose_log "Starting xNF simulator container on port ${XNF_PORT} using run-xnf-simulator script"
- XNF_CONTAINER_ID=$(${DEVELOPMENT_BIN_DIRECTORY}/run-xnf-simulator.sh ${SSL_DISABLE} $XNF_PORT ${HV_VES_HOSTNAME} ${HV_VES_PORT} ${DOCKER_NETWORK:-})
- CREATED_XNF_SIMULATORS_PORTS+=(${XNF_PORT})
- verbose_log "Container id: ${XNF_CONTAINER_ID}"
- CREATED_XNF_SIMULATORS_IDS+=(${XNF_CONTAINER_ID})
- done
-}
-
-function get_unoccupied_port() {
- local LPORT=$1
- local UPORT=$2
- while true; do
- local MPORT=$[$LPORT + ($RANDOM % $UPORT)];
- local LISTENING_PORTS=$(osqueryi --header=false --list "select port from listening_ports order by port");
- if (echo "${LISTENING_PORTS[@]}" | grep -xqv $MPORT); then
- echo $MPORT;
- break;
- fi
- done
-}
-
-function wait_for_containers_startup_or_fail() {
- local intervals_amount=30
- local wait_interval=5
- local all_containers_healthy=1
-
- verbose_log "Waiting up to ${intervals_amount} times with interval of ${wait_interval}s for containers startup"
- set +e
- for i in $(seq 1 ${intervals_amount}); do
- verbose_log "Try no. ${i}"
- all_containers_healthy=1
- for id in ${CREATED_XNF_SIMULATORS_IDS[@]}; do
- verbose_log "Checking container with id ${id}"
- health=$(docker inspect --format='{{json .State.Health.Status}}' ${id})
- if [ ${health} != "\"healthy\"" ]; then
- verbose_log "Container ${id} is not in healthy state. Actual status: ${health}"
- all_containers_healthy=0
- break
- fi
- done
- if [ $all_containers_healthy -eq 1 ]; then
- break
- fi
- verbose_log "Sleeping for ${wait_interval}s"
- sleep $wait_interval
- done
- set -e
-
- if [ $all_containers_healthy -ne 1 ]; then
- echo "Some xNFs simulators failed at startup. Trying to cleanup..."
- cleanup
- echo "Exitting..."
- exit 2
- fi
-}
-
-function start_simulation() {
- verbose_log "Simulation: every xNF will send ${MESSAGES_IN_BATCH} messages to hv-ves ( running on
- ${HV_VES_HOSTNAME}:${HV_VES_PORT} ) ${MESSAGE_BATCHES_AMOUNT} times, once every ${MESSAGES_SENDING_INTERVAL}s"
- for port in ${CREATED_XNF_SIMULATORS_PORTS[@]}; do
- start_single_simulation $port $MESSAGES_IN_BATCH &
- done
-}
-
-function start_single_simulation() {
- local port=$1
- local messages_to_be_sent=$2
- local message_type="VALID"
- for i in $(seq 1 ${MESSAGE_BATCHES_AMOUNT}); do
- ${DEVELOPMENT_BIN_DIRECTORY}/xnf-simulation.sh $port $messages_to_be_sent $message_type > /dev/null &
- sleep $MESSAGES_SENDING_INTERVAL
- done
-}
-
-function assure_all_xNFs_requests_were_sent {
- WAIT_TIME_FOR_REQUESTS_TO_BE_SENT=$(echo ";1 + $MESSAGES_SENDING_INTERVAL * $MESSAGE_BATCHES_AMOUNT" | bc)
- echo "Waiting ${WAIT_TIME_FOR_REQUESTS_TO_BE_SENT}s for all xNF requests to be sent"
- sleep $WAIT_TIME_FOR_REQUESTS_TO_BE_SENT
-}
-
-function wait_for_simulators_to_finish_sending_messages() {
- local seconds_to_wait=$1
- local all_containers_finished=1
-
- echo "Waiting up to ${seconds_to_wait}s for xNFs simulators to finish sending messages"
- for i in $(seq 1 ${seconds_to_wait}); do
- verbose_log "Wait no. ${i}"
- all_containers_finished=1
- for id in ${CREATED_XNF_SIMULATORS_IDS[@]}; do
- verbose_log "Checking container ${id}"
- local container_status=$(docker inspect --format='{{json .State.Health.Log }}' ${id} | jq '.[-1] | .Output')
-
- verbose_log "Container ${id} status: ${container_status}"
- if [ "${container_status}" != "\"UP\\nNo simulation is in progress at the moment\"" ]; then
- all_containers_finished=0
- break
- fi
- done
- if [ $all_containers_finished -eq 1 ]; then
- echo "All containers finished sending messages"
- break
- fi
- verbose_log "Sleeping for 1s"
- sleep 1
- done
-
-
- if [ $all_containers_finished -ne 1 ]; then
- echo "[ERROR] Some xNFs simulators failed to finish sending messages - simulation probably failed"
- echo "For debug output rerun simulation with -v and --xnf-logs-directory command line options"
- cleanup
- echo "Exitting..."
- exit 3
- fi
-}
-
-function cleanup() {
- echo "Cleaning up"
- set +e
- for container_id in ${CREATED_XNF_SIMULATORS_IDS[@]}; do
- verbose_log "Stopping container: ${container_id}"
- docker stop $container_id > /dev/null
- if [ -n "${XNF_LOGS_DIRECTORY+x}" ]; then
- local log_file=${XNF_LOGS_DIRECTORY}/${container_id}.log
- verbose_log "Writing container logs to: ${log_file}"
- docker logs ${container_id} &> $log_file
- fi
- verbose_log "Removing container: ${container_id}"
- docker rm $container_id > /dev/null
- done
- set -e
-}
-
-
-function parse_long_opts_with_arguments() {
- if [[ ${OPTARG} =~ .*=.* ]] # is option in --key=value format
- then
- OPT=${OPTARG/=*/}
- ((${#OPT} <= 1)) && {
- echo "Invalid option '$OPT'" >&2
- exit 2
- }
- OPTARG=${OPTARG#*=}
- else
- echo -e "No value provided for ${OPTARG}. Please use \"--${OPTARG}=VALUE\" format." >&2
- usage
- fi
-}
-
-# parse command line
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True ;;
- ssl-disable)
- SSL_DISABLE="--ssl-disable" ;;
- help)
- usage ;;
- *)
- parse_long_opts_with_arguments
- case "${OPT}" in
- messages-in-batch)
- MESSAGES_IN_BATCH=$OPTARG ;;
- docker-network)
- DOCKER_NETWORK=$OPTARG ;;
- xnf-logs-directory)
- XNF_LOGS_DIRECTORY=$OPTARG ;;
- *)
- usage ;;
- esac ;;
- esac ;;
- v)
- VERBOSE=True ;;
- h)
- usage ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage ;;
- esac
-done
-shift $((OPTIND-1))
-
-[ $# -le 4 ] && (echo -e "Unsufficient arguments"; usage)
-
-
-DEVELOPMENT_BIN_DIRECTORY=$(realpath $(dirname "$0"))
-HV_VES_HOSTNAME=${1}
-HV_VES_PORT=${2}
-XNFS_AMOUNT=${3}
-MESSAGE_BATCHES_AMOUNT=${4}
-MESSAGES_SENDING_INTERVAL=${5}
-
-# set defaults if absent
-[ -z "${MESSAGES_IN_BATCH+x}" ] && MESSAGES_IN_BATCH=1
-[ -z "${SSL_DISABLE+x}" ] && SSL_DISABLE=""
-
-create_logs_dir
-
-
-CREATED_XNF_SIMULATORS_PORTS=()
-CREATED_XNF_SIMULATORS_IDS=()
-trap cleanup SIGINT SIGTERM
-create_xNFs_simulators
-
-wait_for_containers_startup_or_fail
-
-echo "All xNFs containers are healthy, starting simulation"
-start_simulation
-
-assure_all_xNFs_requests_were_sent
-
-assumed_message_sending_time=$(echo ";0.00025 * $XNFS_AMOUNT" | bc)
-seconds_to_wait=$(echo ";$assumed_message_sending_time * $MESSAGE_BATCHES_AMOUNT * $MESSAGES_IN_BATCH" | bc)
-seconds_to_wait=$(echo ";if($seconds_to_wait > 2) $seconds_to_wait else 2" | bc)
-wait_for_simulators_to_finish_sending_messages $seconds_to_wait
-# there might be network lag between moment when xNF finished sending messages and they actually are received by hv-ves
-# thus we cannot start removing xNFs immediately to prevent closing socket channels
-sleep 5
-
-cleanup \ No newline at end of file
diff --git a/development/bin/xnf-simulation.sh b/development/bin/xnf-simulation.sh
deleted file mode 100755
index ade0e426..00000000
--- a/development/bin/xnf-simulation.sh
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env bash
-# ============LICENSE_START=======================================================
-# dcaegen2-collectors-veshv
-# ================================================================================
-# Copyright (C) 2018 NOKIA
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-
-set -euo pipefail
-
-usage() {
- echo "Send request to xnf-simulator"
- echo "Usage: $0 [-h|--help] [-v|--verbose] [<xnf listen port> [<messages amount> [<messages type> [<xnf endpoint>]]]]"
- echo ""
- echo "Default values:"
- echo " - xnf listen port : 6062"
- echo " - messages amount : 1"
- echo " - messages type : VALID"
- echo " - xnf endpoint : simulator/async"
- echo "Example invocations:"
- echo "./xnf-simulation.sh -v 6062 1000 VALID"
- exit 1
-}
-
-optspec=":vh-:" # catch v, h and -
-while getopts "$optspec" arg; do
- case "${arg}" in
- -) # handle longopts
- case "${OPTARG}" in
- verbose)
- VERBOSE=True
- ;;
- help)
- usage
- ;;
- *)
- echo "Unknown option --${OPTARG}" >&2
- usage
- ;;
- esac
- ;;
- v)
- VERBOSE=True
- ;;
- h)
- usage
- ;;
- *)
- echo "Unknown option -${OPTARG}" >&2
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-XNF_PORT=${1:-6062}
-MESSAGES_AMOUNT=${2:-1}
-MESSAGES_TYPE=${3:-VALID}
-XNF_ENDPOINT=simulator/async
-
-if [ -n "${VERBOSE+x}" ]; then
- echo "Requesting xnf-simulator on port ${XNF_PORT} to send ${MESSAGES_AMOUNT} messages of type ${MESSAGES_TYPE}"
-fi
-
-currentTimeMicros=$((`date +%s%N`/1000))
-REQUEST_ID=$(curl --request POST -s --header 'Content-Type: application/json' localhost:${XNF_PORT}/${XNF_ENDPOINT} -d "
-[
- {
- \"commonEventHeader\": {
- \"version\": \"sample-version\",
- \"domain\": \"perf3gpp\",
- \"sequence\": 1,
- \"priority\": 1,
- \"eventId\": \"sample-event-id\",
- \"eventName\": \"sample-event-name\",
- \"eventType\": \"sample-event-type\",
- \"startEpochMicrosec\": 120034455,
- \"lastEpochMicrosec\": $currentTimeMicros,
- \"nfNamingCode\": \"sample-nf-naming-code\",
- \"nfcNamingCode\": \"sample-nfc-naming-code\",
- \"reportingEntityId\": \"sample-reporting-entity-id\",
- \"reportingEntityName\": \"sample-reporting-entity-name\",
- \"sourceId\": \"sample-source-id\",
- \"sourceName\": \"sample-source-name\",
- \"vesEventListenerVersion\": \"7.2.0\"
- },
- \"messageType\": \"${MESSAGES_TYPE}\",
- \"messagesAmount\": ${MESSAGES_AMOUNT}
- }
-]")
-
-if [ -n "${VERBOSE+x}" ]; then
- echo -e "Request id: ${REQUEST_ID}\n"
-
- echo "To check request status execute:"
- echo "curl --request GET localhost:${XNF_PORT}/simulator/${REQUEST_ID}"
- echo "To further debug you can try something similiar to:"
- echo "docker ps -a | grep ${XNF_PORT} | awk '{ print \$1 }' | xargs docker logs"
-else
- echo "${REQUEST_ID}"
-fi \ No newline at end of file