summaryrefslogtreecommitdiffstats
path: root/kubernetes/sdnc/resources/geo/bin/sdnc.cluster
blob: 87cdeffe896d87cdb05d811923d5b075762af0f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash

# Copyright © 2018 Amdocs
#
# 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.

if ! [ "$(command -v jq)" ]; then
  echo "Error: jq is not installed."
  echo "use: sudo apt install jq"
  exit 1
fi

dir=$( dirname $0 )
IS_PRIMARY_CLUSTER=$( $dir/sdnc.isPrimaryCluster )

case $IS_PRIMARY_CLUSTER in
true)
   MEMBER_NUMBER=1
   ;;
false)
   MEMBER_NUMBER=4
   ;;
*)
  echo "Error: isPrimaryCluster not defined in $dir/../../../values.yaml."
  exit 1
  ;;
esac

USERNAME=admin
PASSWORD=admin

for pod_number in {0..2}
do

   response=`curl -s -u $USERNAME:$PASSWORD -H "Content-Type: application/json" -H "Accept: application/json" -X GET http://localhost:3026$((${pod_number} + 1))/jolokia/read/org.opendaylight.controller:Category=Shards,name=member-$((${MEMBER_NUMBER} + ${pod_number}))-shard-default-config,type=DistributedConfigDatastore`

   if [ $? -ne 0 ]; then
      continue
   fi

   status=$( echo -E "$response" | jq -r ".status" )
   if [ "$status" != "200" ]; then
      continue
   fi

   voting=$( echo -E "$response" | jq -r ".value.Voting" )
   case $voting in
   true)
      echo "active"
      exit 0
      ;;
   false)
      echo "standby"
      exit 0
      ;;
   *)
     echo "Error: Voting status could not be determined."
     exit 1
     ;;
   esac
done

echo "Error: Voting status could not be determined."
exit 1