[Tree-wide] Make chart build process predictible
[oom.git] / kubernetes / sdnc / components / sdnc-prom / resources / bin / sdnc.cluster
1 #!/bin/bash
2
3 # Copyright © 2018 Amdocs
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 # query ODL cluster state
18 USERNAME="{{.Values.odl.jolokia.username}}"
19 PASSWORD="{{.Values.odl.jolokia.password}}"
20
21 count=${SDNC_ODL_COUNT:-1}
22 memberStart=0
23 if [ "${SDNC_IS_PRIMARY_CLUSTER:-true}" != "true" ];then
24   memberStart=$(( $memberStart + $count ))
25 fi
26
27 for instance in $(seq $count);do
28   shard=member-$(( $memberStart + $instance ))-shard-default-config
29   mbean=Category=Shards,name=$shard,type=DistributedConfigDatastore
30   url=http://{{ include "common.release" . }}-sdnc-$(( $instance-1 )).sdnc-cluster.{{.Release.Namespace}}:8181/jolokia/read/org.opendaylight.controller:$mbean
31
32   response=$( curl -s -u $USERNAME:$PASSWORD $url )
33   rc=$?
34   if [ $rc -ne 0 ];then
35     # failed to contact SDN-C instance - try another
36     continue
37   fi
38   status=$( echo -E "$response" | jq -r ".status" )
39   if [ "$status" != "200" ];then
40     # query failed, try another instance
41     continue
42   fi
43
44   voting=$( echo -E "$response" | jq -r ".value.Voting" )
45   case $voting in
46   true)
47     echo "active"
48     exit 0
49     ;;
50   false)
51     echo "standby"
52     exit 0
53     ;;
54   *)
55     echo "Error: Voting status could not be determined."
56     exit 1
57     ;;
58   esac
59 done
60 echo "Error: Voting status could not be determined."
61 exit 1