Merge configurations
[dcaegen2/collectors/hv-ves.git] / development / bin / consul.sh
1 #!/usr/bin/env bash
2 # ============LICENSE_START=======================================================
3 # dcaegen2-collectors-veshv
4 # ================================================================================
5 # Copyright (C) 2018 NOKIA
6 # ================================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=========================================================
19
20 set -euo pipefail
21
22 usage() {
23     echo "Put HV-VES configuration into Consul key-value store"
24     echo "Usage: $0 [-h|--help] [-v|--verbose] [domain [topic]]"
25     exit 1
26 }
27
28 optspec=":vh-:" # catch v, h and -
29 while getopts "$optspec" arg; do
30     case "${arg}" in
31         -) # handle longopts
32             case "${OPTARG}" in
33                 verbose)
34                     VERBOSE=True
35                     ;;
36                 help)
37                     usage
38                     ;;
39                 *)
40                     echo "Unknown option --${OPTARG}" >&2
41                     usage
42                     ;;
43              esac
44              ;;
45         v)
46             VERBOSE=True
47             ;;
48         h)
49             usage
50             ;;
51         *)
52             echo "Unknown option -${OPTARG}" >&2
53             usage
54             ;;
55     esac
56 done
57 shift $((OPTIND-1))
58
59 DOMAIN=${1:-perf3gpp}
60 TOPIC=${2:-HV_VES_PERF3GPP}
61
62 CONFIGURATION="{
63   "streams_publishes": {
64     "${DOMAIN}": {
65       "type": "kafka",
66       "kafka_info": {
67         "bootstrap_servers": "message-router-kafka:9092",
68         "topic_name": "${TOPIC}"
69       }
70     }
71   }
72 }"
73 CONFIGURATION_ENDPOINT=localhost:8500/v1/kv/veshv-config
74
75
76 if [ -n "${VERBOSE+x}" ]; then
77     echo "Configuration: ${CONFIGURATION}"
78     echo "Putting configuration under ${CONFIGURATION_ENDPOINT}."
79 fi
80 curl --request PUT ${CONFIGURATION_ENDPOINT} -d "${CONFIGURATION}"
81 echo