Intial version for solution/dev
[oam.git] / solution / dev / ves-test-collector / client-scripts-ves-v7 / sendTca.sh
diff --git a/solution/dev/ves-test-collector/client-scripts-ves-v7/sendTca.sh b/solution/dev/ves-test-collector/client-scripts-ves-v7/sendTca.sh
new file mode 100755 (executable)
index 0000000..5aa6714
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/bash
+################################################################################
+#
+# Copyright 2019 highstreet technologies GmbH and others
+#
+# 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.
+
+################################################################################
+# Script to send an VES Message Event to DCAE
+
+. config;
+            pnfType=${1,,};
+          alarmType=$2;
+             action=$3;
+             domain=thresholdCrossingAlert;
+collectionTimestamp=$(date -u -R -d @$timeInS );:
+          time15min=$(( $timeInS - $(($timeInS % 900))));
+eventStartTimestamp=$(date -u -R -d @$time15min );
+
+declare -A severities=(
+    [clear]=NORMAL
+    [cont]=WARNING
+    [set]=WARNING
+)
+         severity=${severities[${3,,}]};
+
+declare -A mapping=(
+    [domain]=$domain
+    [controllerName]=$(hostname --fqdn)
+    [pnfId]=${pnfIdByType[$pnfType]}
+    [eventId]="${pnfIdByType[$pnfType]}_${interfaceByType[$pnfType]}_${alarmType}"
+    [eventType]=${eventType}
+    [type]=${pnfType^^}
+    [interface]=${interfaceByType[$pnfType]}
+    [alarm]=${alarmType}
+    [action]=${action}
+    [severity]=${severity}
+    [timestamp]=${timestamp}
+    [eventTime]=${eventTime}
+    [collectionTimestamp]=${collectionTimestamp}
+    [eventStartTimestamp]=${eventStartTimestamp}
+    [vendor]=${vendorsByType[$pnfType]^^}
+    [model]=${modelByType[$pnfType]}
+)
+
+echo "################################################################################";
+echo "# send threshold crossed alert";
+echo
+for key in "${!mapping[@]}"
+do
+  label=$spaces$key;
+  label=${label:(-20)};
+  echo "$label: ${mapping[$key]}";
+  if [ $key = "timestamp" ]; then
+      sequence="$sequence s/\"@$key@\"/${mapping[$key]}/g; "
+  else
+      sequence="$sequence s/@$key@/${mapping[$key]}/g; "
+  fi  
+done
+echo;
+
+body=./json/examples/${pnfType^^}-${alarmType}-${action}-${domain}.json;
+sed -e "$sequence" ./json/templates/$domain.json > $body;
+
+curl -i -k -u $basicAuthVes -X POST -d  @${body} --header "Content-Type: application/json" $urlVes
\ No newline at end of file