Whamcloud - gitweb
b=9853
authoryujian <yujian>
Tue, 21 Mar 2006 11:20:09 +0000 (11:20 +0000)
committeryujian <yujian>
Tue, 21 Mar 2006 11:20:09 +0000 (11:20 +0000)
- verify service IP addresses with failover nodes

lustre/utils/cluster_scripts/gen_clumanager_config.sh

index 9a6938b..8469f7d 100755 (executable)
@@ -30,16 +30,14 @@ Usage:  `basename $0` <-n hostnames> <-d target device> <-s service addresses>
        -o heartbeat options    a "catchall" for other heartbeat configuration 
                                options
        -v                      verbose mode
-                               Causes `basename $0` to print debugging messages
-                               about its progress.
 
 EOF
        exit 1
 }
 
 # Global variables
-SCRIPT_PATH=$"./"
-SCRIPT_VERIFY_SRVIP=${SCRIPT_PATH}$"verify_serviceIP.sh"
+SCRIPTS_PATH=${CLUSTER_SCRIPTS_PATH:-"./"}
+SCRIPT_VERIFY_SRVIP=${SCRIPTS_PATH}$"verify_serviceIP.sh"
 
 LUSTRE_SRV_SCRIPT=$"/etc/rc.d/init.d/lustre"   # service script for lustre
 
@@ -129,55 +127,58 @@ verbose_output() {
        return 0
 }
 
-# get_check_srvIPaddrs
+# get_nodenames
 #
-# Get and check all the service IP addresses in this failover group
-get_check_srvIPaddrs() {
+# Get all the node names in this failover group
+get_nodenames() {
        PRIM_NODENAME=`echo ${HOSTNAME_OPT} | awk -F":" '{print $1}'`
 
        declare -i idx
-       local srvIPaddr_str srvIPaddr
+       local nodename_str nodename
 
-       srvIPaddr_str=`echo ${SRVADDR_OPT}|awk '{split($SRVADDR_OPT, a, ":")}\
+       nodename_str=`echo ${HOSTNAME_OPT}|awk '{split($HOSTNAME_OPT, a, ":")}\
                      END {for (i in a) print a[i]}'`
        idx=0
-       for srvIPaddr in ${srvIPaddr_str}
+       for nodename in ${nodename_str}
         do
-               SRV_IPADDRS[idx]=${srvIPaddr}
+               NODE_NAMES[idx]=${nodename}
                idx=$idx+1
         done
 
-       for ((idx = 0; idx < ${#SRV_IPADDRS[@]}; idx++)); do
-               # Check service IP address
-               verbose_output "Verifying service IP ${SRV_IPADDRS[idx]} and" \
-                              "real IP of host ${PRIM_NODENAME} are in the" \
-                              "same subnet..."
-               if ! ${SCRIPT_VERIFY_SRVIP} ${SRV_IPADDRS[idx]} ${PRIM_NODENAME}
-               then
-                       return 1
-               fi
-               verbose_output "OK"
-       done
-
        return 0
 }
 
-# get_nodenames
+# get_check_srvIPaddrs
 #
-# Get all the node names in this failover group
-get_nodenames() {
+# Get and check all the service IP addresses in this failover group
+get_check_srvIPaddrs() {
        declare -i idx
-       local nodename_str nodename
+       declare -i i
+       local srvIPaddr_str srvIPaddr
 
-       nodename_str=`echo ${HOSTNAME_OPT}|awk '{split($HOSTNAME_OPT, a, ":")}\
+       srvIPaddr_str=`echo ${SRVADDR_OPT}|awk '{split($SRVADDR_OPT, a, ":")}\
                      END {for (i in a) print a[i]}'`
        idx=0
-       for nodename in ${nodename_str}
+       for srvIPaddr in ${srvIPaddr_str}
         do
-               NODE_NAMES[idx]=${nodename}
+               SRV_IPADDRS[idx]=${srvIPaddr}
                idx=$idx+1
         done
 
+       for ((idx = 0; idx < ${#SRV_IPADDRS[@]}; idx++)); do
+         for ((i = 0; i < ${#NODE_NAMES[@]}; i++)); do
+           # Check service IP address
+           verbose_output "Verifying service IP ${SRV_IPADDRS[idx]} and" \
+                          "real IP of host ${NODE_NAMES[i]} are in the" \
+                          "same subnet..."
+           if ! ${SCRIPT_VERIFY_SRVIP} ${SRV_IPADDRS[idx]} ${NODE_NAMES[i]}
+           then
+             return 1
+           fi
+           verbose_output "OK"
+         done
+       done
+
        return 0
 }
 
@@ -352,13 +353,13 @@ create_config() {
 }
 
 # Main flow
-# Get and check all the service IP addresses
-if ! get_check_srvIPaddrs; then
+# Get all the node names
+if ! get_nodenames; then
        exit 1
 fi
 
-# Get all the node names
-if ! get_nodenames; then
+# Get and check all the service IP addresses
+if ! get_check_srvIPaddrs; then
        exit 1
 fi