Upgrade APPC to use common mariadb galera charts
[oom.git] / kubernetes / consul / resources / config / consul-agent-config / scripts / sdnc-cluster-health.sh
1 #!/bin/sh
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 siteId=0
23 if [ "$SDNC_IS_PRIMARY_CLUSTER" = "false" ];then
24   siteId=1
25 fi
26
27 for instance in $(seq $count);do
28   shard=member-$(( $siteId*$count + $instance ))-shard-default-config
29   mbean=Category=Shards,name=$shard,type=DistributedConfigDatastore
30   url=http://{{.Release.Name}}-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     echo "Unable to connect to $shard [rc=$?]"
37     continue
38   fi
39
40   status=$( echo "$response" | jq -r ".status" )
41   if [ "$status" != "200" ];then
42     # query failed, try another instance
43     echo "$shard query failed [http-status=$status]"
44     continue
45   fi
46
47   raftState=$( echo "$response" | jq -r ".value.RaftState" )
48   if [ "$raftState" = "Leader" -o "$raftState" = "Follower" ];then
49     # cluster has a leader and is healthy
50     echo "$shard is healthy [RaftState=$raftState]"
51     exit 0
52   else
53     echo "$shard is not healthy [RaftState=$raftState]"
54   fi
55 done
56
57 # ODL cluster is not healthy
58 exit 2