[Ocfs2-tools-commits] smushran commits r844 - trunk/vendor/common

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Apr 26 17:28:55 CDT 2005


Author: smushran
Signed-off-by: mfasheh
Date: 2005-04-26 17:28:53 -0500 (Tue, 26 Apr 2005)
New Revision: 844

Modified:
   trunk/vendor/common/o2cb.init
Log:
o2cb online detection added in o2cb.init
Signed-off-by: mfasheh

Modified: trunk/vendor/common/o2cb.init
===================================================================
--- trunk/vendor/common/o2cb.init	2005-04-26 15:33:09 UTC (rev 843)
+++ trunk/vendor/common/o2cb.init	2005-04-26 22:28:53 UTC (rev 844)
@@ -229,7 +229,7 @@
 #
 # check_heartbeat()
 #
-# 0 is hb not active, 1 is hb active
+# 0 is hb not active, 1 is error, 2 is hb active
 #
 check_heartbeat()
 {
@@ -247,7 +247,7 @@
         then
             break;
         else
-            return 1;
+            return 2;
         fi
     done
     return 0
@@ -287,7 +287,7 @@
         if [ $REF != 0 ]
         then
            echo "Failed"
-           echo "Error: Atleast one heartbeat region still active" >&2
+           echo "Atleast one heartbeat region still active" >&2
            exit 1
         else
            OUTPUT="`ocfs2_hb_ctl -K -u ${HBUUID} 2>&1`"
@@ -388,7 +388,7 @@
         make_dir $FULL_MOUNT
         if_fail "$?"
     fi
-	
+
     echo -n "Mounting ${TYPE} filesystem at $FULL_MOUNT: "
     mount -t ${TYPE} ${TYPE} $FULL_MOUNT
     if [ $? != 0 ]
@@ -454,7 +454,7 @@
 load()
 {
     for i in $(seq 0 $((${#LOAD_ACTIONS[*]} - 1)) ); do
-	eval ${LOAD_ACTIONS[i]}
+        eval ${LOAD_ACTIONS[i]}
         if_fail "$?"
     done
 }
@@ -462,7 +462,7 @@
 load_status()
 {
     for i in $(seq 0 $((${#LOAD_ACTIONS[*]} - 1)) ); do
-	eval "check_${LOAD_ACTIONS[i]}"
+        eval "check_${LOAD_ACTIONS[i]}"
     done
     return "$?"
 }
@@ -475,17 +475,48 @@
         return
     fi
 
-    #
-    # FIXME FIXME FIXME
-    # Right now, there is no way to check if we're already online.
-    # So this will always fail the second time around.  Ugh.
-    #
+    check_online $CLUSTER
+    if [ $? = 2 ]
+    then
+        echo "Cluster ${CLUSTER} already online"
+        return
+    fi
 
     echo -n "Starting cluster ${CLUSTER}: "
     OUTPUT="`o2cb_ctl -H -n "${CLUSTER}" -t cluster -a online=yes 2>&1`"
     if_fail "$?" "$OUTPUT"
 }
 
+#
+# check_online()
+#
+# 0 is not online, 1 is error, 2 is online
+#
+check_online()
+{
+    if [ "$#" -lt "1" -o -z "$1" ]
+    then
+        echo "check_online(): Requires an argument" >&2
+        return 1
+    fi
+    CLUSTER="$1"
+
+    for i in "/config/cluster/${CLUSTER}/node/"*
+    do
+        NODE="`echo $i | cut -f6 -d/`"
+        if [ "${NODE}" = "*" ]
+        then
+            return 0
+        fi
+        LOCAL="`cat \"/config/cluster/${CLUSTER}/node/${NODE}/local\"`"
+        if [ $LOCAL = 1 ]
+        then
+            return 2
+        fi
+    done
+    return 0
+}
+
 offline()
 {
     CLUSTER="${1:-${O2CB_BOOTCLUSTER}}"
@@ -525,7 +556,7 @@
 unload()
 {
     for i in $(seq $((${#LOAD_ACTIONS[*]} - 1)) -1 0); do
-	eval "un${LOAD_ACTIONS[i]}"
+        eval "un${LOAD_ACTIONS[i]}"
         if_fail "$?"
     done
 }
@@ -546,7 +577,7 @@
 status()
 {
     load_status
-    if [ $? = 1 ]
+    if [ $? != 2 ]
     then
         return 0;
     fi
@@ -557,19 +588,27 @@
         return 1;
     fi
 
-#TODO Add Cluster online check
+    echo -n "Checking cluster: "
+    check_online $CLUSTER
+    if [ $? = 2 ]
+    then
+       echo "Online"
+    else
+       echo "Offline"
+       return 0;
+    fi
 
     echo -n "Checking heartbeat: "
     check_heartbeat $CLUSTER
-    if [ $? = 0 ]
+    if [ $? = 2 ]
     then
+        echo "Active"
+    else
         echo "Not active"
         return 0;
-    else
-        echo "Active"
     fi
 
-    exit 1
+    return
 
     echo -n "Checking if O2CB is loaded: "
     RC=0



More information about the Ocfs2-tools-commits mailing list