From 27def344fed355b63305f90bfcb28b3e95c7cb5e Mon Sep 17 00:00:00 2001 From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk> Date: Fri, 1 Mar 2019 13:14:21 +0000 Subject: [PATCH] Fixes bug with empty array in the graph pipeline script --- scripts/clmc-service/graph-pipeline.sh | 43 ++++++++++++++------------ 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/scripts/clmc-service/graph-pipeline.sh b/scripts/clmc-service/graph-pipeline.sh index 2b8700c..c59987b 100644 --- a/scripts/clmc-service/graph-pipeline.sh +++ b/scripts/clmc-service/graph-pipeline.sh @@ -61,34 +61,39 @@ do echo "Received request uuid ${graph_uuid}" echo "Timestamp to use for measurement ${timestamp}" - echo "Received endpoints: ${endpoints[@]}" - for endpoint in ${endpoints[@]}; do - for ue in ${ues[@]}; do + # check the count of the received endpoints, otherwise an empty array will be considered as an unset variable + if [[ ${#endpoints[@]} -eq 0 ]]; then + echo "The list of endpoints returned by the build request is empty" + else + echo "Received endpoints: ${endpoints[@]}" + for endpoint in ${endpoints[@]}; do + for ue in ${ues[@]}; do - echo "Querying for round-trip time..." - response=$(curl -s -X GET "http://${CLMC_IP}/clmc-service/graph/temporal/${graph_uuid}/round-trip-time?startpoint=${ue}&endpoint=${endpoint}") + echo "Querying for round-trip time..." + response=$(curl -s -X GET "http://${CLMC_IP}/clmc-service/graph/temporal/${graph_uuid}/round-trip-time?startpoint=${ue}&endpoint=${endpoint}") - global_tags=$(echo ${response} | jq -r '.global_tags | to_entries | map("\(.key)=\(.value|tostring)") | join(",")') - echo "Global tags: ${global_tags}" + global_tags=$(echo ${response} | jq -r '.global_tags | to_entries | map("\(.key)=\(.value|tostring)") | join(",")') + echo "Global tags: ${global_tags}" - local_tags=$(echo ${response} | jq -r '.local_tags | to_entries | map("\(.key)=\(.value|tostring)") | join (",")') - echo "Local tags: ${local_tags}" + local_tags=$(echo ${response} | jq -r '.local_tags | to_entries | map("\(.key)=\(.value|tostring)") | join (",")') + echo "Local tags: ${local_tags}" - fields=$(echo ${response} | jq -r '. | "\(.round_trip_time) \(.response_time) \(.total_forward_latency)"') - read rtt service_delay network_delay <<< ${fields} + fields=$(echo ${response} | jq -r '. | "\(.round_trip_time) \(.response_time) \(.total_forward_latency)"') + read rtt service_delay network_delay <<< ${fields} - echo "Round-trip-time: ${rtt}" - echo "Service delay: ${service_delay}" - echo "Network latency ${network_delay}" + echo "Round-trip-time: ${rtt}" + echo "Service delay: ${service_delay}" + echo "Network latency ${network_delay}" - measurement_line="${results_measurement},${global_tags},${local_tags} round_trip_time=${rtt},service_delay=${service_delay},network_delay=${network_delay} ${timestamp}" - echo "Measurement line: ${measurement_line}" - response=$(curl -si -X POST "http://${CLMC_IP}/influxdb/write?db=${db_name}" --data-binary "${measurement_line}") - echo "InfluxDB response: ${response}" + measurement_line="${results_measurement},${global_tags},${local_tags} round_trip_time=${rtt},service_delay=${service_delay},network_delay=${network_delay} ${timestamp}" + echo "Measurement line: ${measurement_line}" + response=$(curl -si -X POST "http://${CLMC_IP}/influxdb/write?db=${db_name}" --data-binary "${measurement_line}") + echo "InfluxDB response: ${response}" + done done - done + fi echo "Deleting temporal graph..." response=$(curl -s -X DELETE "http://${CLMC_IP}/clmc-service/graph/temporal/${graph_uuid}") -- GitLab