summaryrefslogtreecommitdiffstats
path: root/kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh
diff options
context:
space:
mode:
authorMohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com>2018-06-19 15:19:53 -0400
committerBorislav Glozman <Borislav.Glozman@amdocs.com>2018-07-15 10:59:27 +0000
commitb642ee553d6dd486fc375755af9da2fdd9c94885 (patch)
tree6ef3892f15ca7358c316772d388967b905040df1 /kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh
parentdfadfeb71f183943ece2b1641a2d51bcf6219ab6 (diff)
SDN-C Multi-site High-availability - Auto-failover
Change-Id: I4e028b31ce7a60154d2c04c63431c5ea996de8f8 Signed-off-by: Mohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com> Issue-ID: SDNC-213
Diffstat (limited to 'kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh')
-rwxr-xr-xkubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh b/kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh
new file mode 100755
index 0000000000..8dd84bd3ea
--- /dev/null
+++ b/kubernetes/sdnc/sdnc-prom/resources/bin/ensureSdncStandby.sh
@@ -0,0 +1,58 @@
+#!/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.
+
+debugLog(){
+ if [ "$enableDebugLogging" == true ]; then
+ if [ $# -eq 0 ]; then
+ echo "" >> $LOGFILE
+ else
+ echo $( date ) $@ >> $LOGFILE
+ fi
+ fi
+}
+
+LOGFILE="/app/geo.log"
+enableDebugLogging=true
+
+debugLog
+debugLog "Executing ensureSdncStandby"
+
+# query SDN-C cluster status
+debugLog "Started executing sdnc.cluster"
+clusterStatus=$( /app/bin/sdnc.cluster )
+debugLog "Completed executing sdnc.cluster. Cluster status is: $clusterStatus"
+
+if [ "active" = "$clusterStatus" ]; then
+ # assume transient error as other side transitions to ACTIVE
+ debugLog "Cluster status: $clusterStatus. exit 0"
+ exit 0
+
+elif [ "standby" = "$clusterStatus" ]; then
+ # check that standby cluster is healthy
+ debugLog "Started executing sdnc.monitor. Cluster status is: $clusterStatus"
+ health=$( /app/bin/sdnc.monitor )
+ debugLog "Completed executing sdnc.monitor. Cluster is: $health"
+ if [ "failure" = "$health" ];then
+ # Backup site is unhealthy - can't accept traffic!
+ exit 1
+ fi
+ # Cluster is standing by
+ exit 0
+fi
+
+debugLog "Unknown cluster status: $clusterStatus"
+# Unknown cluster status
+exit 1