#!/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