File fix-sg_persist-for-code-normalization.patch of Package resource-agents.1159
Index: resource-agents-3.9.5/heartbeat/sg_persist
===================================================================
--- resource-agents-3.9.5.orig/heartbeat/sg_persist 2014-02-14 15:09:27.000000000 +0800
+++ resource-agents-3.9.5/heartbeat/sg_persist 2014-02-14 15:12:40.000000000 +0800
@@ -31,13 +31,13 @@
#
# OCF instance parameters
-# OCF_RESKEY_sg_persist_resource
-# OCF_RESKEY_config_file
-# OCF_RESKEY_devs
-# OCF_RESKEY_required_devs_nof
-# OCF_RESKEY_reservation_type
-# OCF_RESKEY_master_score_base
-# OCF_RESKEY_master_score_dev_factor
+# OCF_RESKEY_sg_persist_resource
+# OCF_RESKEY_config_file
+# OCF_RESKEY_devs
+# OCF_RESKEY_required_devs_nof
+# OCF_RESKEY_reservation_type
+# OCF_RESKEY_master_score_base
+# OCF_RESKEY_master_score_dev_factor
#. This resource agent manages SCSI PERSISTENT RESERVATIONS.
#. "sg_persist" from sg3_utils is used, please read its documentation.
@@ -45,12 +45,12 @@
#. Slave registers its node id ("crm_node -i") as reservation key ( --param-rk ) on each device in the "devs" list.
#. Master reservs all devices from "devs" list with reservation "--prout-type" value from "reservation_type" parameter.
#.
-#. OCF_RESKEY_sg_persist_resource
+#. OCF_RESKEY_sg_persist_resource
#. ------------------------------
#. The name of the sg_persist resource. This parameter is required.
#.
-#. OCF_RESKEY_config_file
-#. ----------------------
+#. OCF_RESKEY_config_file
+#. ----------------------
#. Full path to the sg_persist resource configuration file. Default /etc/sg_persist.conf
#. Configuration file should be owned by "root" and can only be writable by owner.
#. The config file is sourced as shell script with ". \$config_file".
@@ -69,12 +69,12 @@
#. Configuration file can be used for any resource parameter other then sg_persist_resource and config_file.If some parameter is specified in config file and also as crm resource parameter - the value from crm is used.
#.
#.
-#. OCF_RESKEY_devs
+#. OCF_RESKEY_devs
#. ---------------
#. Device list - required, couldn't be empty
#. "echo \$devs" is actually used, so shell wildcars are allowed.
#.
-#. OCF_RESKEY_required_devs_nof
+#. OCF_RESKEY_required_devs_nof
#. ----------------------------
#. Minimum number of "working" devices from device list "devs":
#. 1) existing
@@ -83,7 +83,7 @@
#. resorce actions "stop" and "demote" tries to remove reservations and registration keys from all working devices, but always return "\$OCF_SUCCESS"
#. Default 1
#.
-#. OCF_RESKEY_reservation_type
+#. OCF_RESKEY_reservation_type
#. ---------------------------
#. reservation type, used for --prout-type option of "sg_persist" command
#. Default 1 - "write exclusive"
@@ -95,13 +95,13 @@
#. if set to bigger value in sg_persist resource configuration file on some node, this node will be "preferred" for master role.
#. Default 0
#.
-#. OCF_RESKEY_master_score_dev_factor
+#. OCF_RESKEY_master_score_dev_factor
#. ----------------------------------
#. Working device factor in master_score calculation - each "working" device provides additional value to "master_score", so the node that sees more devices will be preferred for the "Master"-role
#. Setting it to 0 will disable this behavior.
#. Default 100
#.
-#. OCF_RESKEY_master_score_delay
+#. OCF_RESKEY_master_score_delay
#. ----------------------------------
#. master decreases its master_score after delay of \$master_score_delay seconds
#. slave increases ist master_score after delay of \$master_score_delay seconds
@@ -228,29 +228,29 @@
local cmd_out
cmd_out=$($cmd)
ret=$?
-
+
if [ $ret -ne 0 ]
then
- ocf_log err "$RESOURCE: Exit code $ret"
- ocf_log err "$RESOURCE: Command output: $cmd_out"
+ ocf_log err "$RESOURCE: Exit code $ret"
+ ocf_log err "$RESOURCE: Command output: $cmd_out"
else
- ocf_log debug "$RESOURCE: Exit code $ret"
- ocf_log debug "$RESOURCE: Command output: $cmd_out"
+ ocf_log debug "$RESOURCE: Exit code $ret"
+ ocf_log debug "$RESOURCE: Command output: $cmd_out"
fi
-
+
echo $cmd_out
-
+
return $ret
}
sg_persist_init() {
-
+
if ocf_is_root
then
- :
+ :
else
- ocf_log err "You must be root to perform this operation."
- exit $OCF_ERR_PERM
+ ocf_log err "You must be root to perform this operation."
+ exit $OCF_ERR_PERM
fi
: ${SG_PERSIST:=sg_persist}
@@ -259,23 +259,18 @@
ROLE=$OCF_RESKEY_CRM_meta_role
NOW=`date +%s`
- #CRM_MASTER="${HA_SBIN_DIR}/crm_master -l reboot "
-
MASTER_SCORE_VAR_NAME="master-${OCF_RESOURCE_INSTANCE}"
PENDING_VAR_NAME="pending-$MASTER_SCORE_VAR_NAME"
- #MASTER_SCORE_UPDATER="${HA_SBIN_DIR}/attrd_updater --lifetime=reboot --name=$MASTER_SCORE_VAR_NAME"
- #PENDING_UPDATER="${HA_SBIN_DIR}/attrd_updater --lifetime=reboot --name=$PENDING_VAR_NAME"
-
#only works with corocync ???
CRM_NODE="${HA_SBIN_DIR}/crm_node"
if [ -z "$RESOURCE" ]
then
- ocf_log err "sg_persist_resource not defined."
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "sg_persist_resource not defined."
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
NODE_ID_DEC=`$CRM_NODE -i`
@@ -285,7 +280,6 @@
NODE=${NODE% *}
MASTER_SCORE_ATTRIBUTE="${HA_SBIN_DIR}/crm_attribute --lifetime=reboot --name=$MASTER_SCORE_VAR_NAME --node=$NODE"
- #MASTER_SCORE_ATTRIBUTE="${HA_SBIN_DIR}/crm_master --lifetime=reboot"
CRM_MASTER="${HA_SBIN_DIR}/crm_master --lifetime=reboot"
PENDING_ATTRIBUTE="${HA_SBIN_DIR}/crm_attribute --lifetime=reboot --name=$PENDING_VAR_NAME --node=$NODE"
@@ -293,17 +287,17 @@
if [ -z "$NODE_ID_HEX" ]
then
- ocf_log err "Couldn't get node id with \"$CRM_NODE\""
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "Couldn't get node id with \"$CRM_NODE\""
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
ocf_log debug "$RESOURCE: NODE:$NODE, ROLE:$ROLE, NODE_ID DEC:$NODE_ID_DEC HEX:$NODE_ID_HEX"
CLONE_NO="$OCF_RESKEY_CRM_meta_clone"
-
+
SG_PERSIST_CONF="${OCF_RESKEY_config_file:=/etc/sg_persist.conf}"
# no default value for device list
@@ -311,10 +305,10 @@
# default number of required devices
required_devs_nof=1
-
+
# default reservation type
reservation_type=1
-
+
# default master score base
master_score_base=0
@@ -326,9 +320,9 @@
if [ -f "$SG_PERSIST_CONF" ]
then
- sg_persist_read_config
+ sg_persist_read_config
fi
-
+
DEVS=${OCF_RESKEY_devs:=$devs}
REQUIRED_DEVS_NOF=${OCF_RESKEY_required_devs_nof:=$required_devs_nof}
RESERVATION_TYPE=${OCF_RESKEY_reservation_type:=$reservation_type}
@@ -348,11 +342,11 @@
if [ -z "$DEVS" ]
then
- ocf_log err "\"devs\" not defined"
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "\"devs\" not defined"
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
sg_persist_check_devs
@@ -366,12 +360,12 @@
if [ $OWNER_UID -ne 0 ]
then
- ocf_log err "resource configuration file \"$SG_PERSIST_CONF\" not owned by \"root\""
- DO_SOURCE_FILE='NO'
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "resource configuration file \"$SG_PERSIST_CONF\" not owned by \"root\""
+ DO_SOURCE_FILE='NO'
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
ACCESS_RIGHTS=`stat --format %A $SG_PERSIST_CONF`
@@ -380,17 +374,17 @@
if [ "$GROUP_WRITE$OTHER_WRITE" != "--" ]
then
- ocf_log err "resource configuration file \"$SG_PERSIST_CONF\" writable not only by owner"
- DO_SOURCE_FILE='NO'
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "resource configuration file \"$SG_PERSIST_CONF\" writable not only by owner"
+ DO_SOURCE_FILE='NO'
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
if [ "$DO_SOURCE_FILE" == "YES" ]
then
- . $SG_PERSIST_CONF
+ . $SG_PERSIST_CONF
fi
unset DEVS
@@ -398,13 +392,13 @@
declare -F sg_persist_resource_$RESOURCE >/dev/null 2>&1
if [ $? -eq 0 ]
then
- sg_persist_resource_$RESOURCE
+ sg_persist_resource_$RESOURCE
else
- ocf_log err "Function sg_persist_resource_$RESOURCE not defined in $SG_PERSIST_CONF"
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "Function sg_persist_resource_$RESOURCE not defined in $SG_PERSIST_CONF"
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
}
@@ -413,49 +407,49 @@
sg_persist_action_usage() {
cat <<END
-usage: $0 {start|stop|monitor|validate-all|promote|demote|notify|meta-data}
+ usage: $0 {start|stop|monitor|validate-all|promote|demote|notify|meta-data}
-Expects to have a fully populated OCF RA-compliant environment set.
+ Expects to have a fully populated OCF RA-compliant environment set.
END
}
sg_persist_get_status() {
unset WORKING_DEVS[*]
-
+
for dev in ${EXISTING_DEVS[*]}
do
- READ_KEYS=`sg_persist_do_cmd $SG_PERSIST --in --read-keys $dev`
- READ_KEYS_RET=$?
+ READ_KEYS=`sg_persist_do_cmd $SG_PERSIST --in --read-keys $dev`
+ READ_KEYS_RET=$?
+
+ if [ $READ_KEYS_RET -eq 0 ]
+ then
+ WORKING_DEVS+=($dev)
+ echo $READ_KEYS | $GREP $NODE_ID_HEX >/dev/null
+ if [ $? -eq 0 ]
+ then
+ REGISTERED_DEVS+=($dev)
- if [ $READ_KEYS_RET -eq 0 ]
- then
- WORKING_DEVS+=($dev)
- echo $READ_KEYS | $GREP $NODE_ID_HEX >/dev/null
- if [ $? -eq 0 ]
- then
- REGISTERED_DEVS+=($dev)
-
- READ_RESERVATION=`sg_persist_do_cmd $SG_PERSIST --in --read-reservation $dev`
- READ_RESERVATION_RET=$?
-
- if [ $READ_RESERVATION_RET -eq 0 ]
- then
- echo $READ_RESERVATION | $GREP $NODE_ID_HEX >/dev/null
- if [ $? -eq 0 ]
- then
- RESERVED_DEVS+=($dev)
- fi
-
- reservation_key=`echo $READ_RESERVATION | $GREP -o 'Key=0x[0-9a-f]*' | $GREP -o '0x[0-9a-f]*'`
- if [ "$reservation_key" != "" ]
- then
- DEVS_WITH_RESERVATION+=($dev)
- RESERVATION_KEYS+=($reservation_key)
- fi
- fi
- fi
- fi
+ READ_RESERVATION=`sg_persist_do_cmd $SG_PERSIST --in --read-reservation $dev`
+ READ_RESERVATION_RET=$?
+
+ if [ $READ_RESERVATION_RET -eq 0 ]
+ then
+ echo $READ_RESERVATION | $GREP $NODE_ID_HEX >/dev/null
+ if [ $? -eq 0 ]
+ then
+ RESERVED_DEVS+=($dev)
+ fi
+
+ reservation_key=`echo $READ_RESERVATION | $GREP -o 'Key=0x[0-9a-f]*' | $GREP -o '0x[0-9a-f]*'`
+ if [ "$reservation_key" != "" ]
+ then
+ DEVS_WITH_RESERVATION+=($dev)
+ RESERVATION_KEYS+=($reservation_key)
+ fi
+ fi
+ fi
+ fi
done
WORKING_DEVS_NOF=${#WORKING_DEVS[*]}
@@ -467,7 +461,7 @@
ocf_log debug "$RESOURCE: reserved devices: `sg_persist_echo_array ${RESERVED_DEVS[*]}`"
ocf_log debug "$RESOURCE: devices with reservation: `sg_persist_echo_array ${DEVS_WITH_RESERVATION[*]}`"
ocf_log debug "$RESOURCE: reservation keys: `sg_persist_echo_array ${RESERVATION_KEYS[*]}`"
-
+
MASTER_SCORE=$(($MASTER_SCORE_BASE + $MASTER_SCORE_DEV_FACTOR*$WORKING_DEVS_NOF))
ocf_log debug "$RESOURCE: master_score: $MASTER_SCORE_BASE + $MASTER_SCORE_DEV_FACTOR*$WORKING_DEVS_NOF = $MASTER_SCORE"
@@ -477,20 +471,20 @@
for dev in $DEVS
do
- if [ -e "$dev" ]
- then
- EXISTING_DEVS+=($dev)
- fi
+ if [ -e "$dev" ]
+ then
+ EXISTING_DEVS+=($dev)
+ fi
done
EXISTING_DEVS_NOF=${#EXISTING_DEVS[*]}
if [ $EXISTING_DEVS_NOF -lt $REQUIRED_DEVS_NOF ]
then
- ocf_log err "Number of existing devices=$EXISTING_DEVS_NOF less then required_devs_nof=$REQUIRED_DEVS_NOF"
- if [ "$FORCE_OCF_SUCCESS" != "YES" ]
- then
- exit $OCF_ERR_INSTALLED
- fi
+ ocf_log err "Number of existing devices=$EXISTING_DEVS_NOF less then required_devs_nof=$REQUIRED_DEVS_NOF"
+ if [ "$FORCE_OCF_SUCCESS" != "YES" ]
+ then
+ exit $OCF_ERR_INSTALLED
+ fi
fi
}
@@ -498,10 +492,10 @@
sg_persist_is_registered() {
for registered_dev in ${REGISTERED_DEVS[*]}
do
- if [ "$registered_dev" == "$1" ]
- then
- return 0
- fi
+ if [ "$registered_dev" == "$1" ]
+ then
+ return 0
+ fi
done
return 1
}
@@ -509,43 +503,39 @@
sg_persist_get_reservation_key() {
for array_index in ${!DEVS_WITH_RESERVATION[*]}
do
- if [ "${DEVS_WITH_RESERVATION[$array_index]}" == "$1" ]
- then
- echo ${RESERVATION_KEYS[$array_index]}
- return 0
- fi
+ if [ "${DEVS_WITH_RESERVATION[$array_index]}" == "$1" ]
+ then
+ echo ${RESERVATION_KEYS[$array_index]}
+ return 0
+ fi
done
echo ""
}
sg_persist_action_start() {
- #sg_persist_do_cmd $CRM_MASTER -v $MASTER_SCORE
- #sg_persist_do_cmd $MASTER_SCORE_UPDATER --update=$MASTER_SCORE
sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --update=$MASTER_SCORE
- #sg_persist_do_cmd $CRM_MASTER --attr-value=$MASTER_SCORE
- #sg_persist_do_cmd $PENDING_UPDATER --update=""
sg_persist_do_cmd $PENDING_ATTRIBUTE --update=""
if [ $WORKING_DEVS_NOF -lt $REQUIRED_DEVS_NOF ]
then
- ocf_log err "$RESOURCE: Number of working devices=$WORKING_DEVS_NOF less then required_devs_nof=$REQUIRED_DEVS_NOF"
- exit $OCF_ERR_GENERIC
+ ocf_log err "$RESOURCE: Number of working devices=$WORKING_DEVS_NOF less then required_devs_nof=$REQUIRED_DEVS_NOF"
+ exit $OCF_ERR_GENERIC
fi
for dev in ${WORKING_DEVS[*]}
do
- if sg_persist_is_registered $dev
- then
- : OK
- else
- sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=0 --param-sark=$NODE_ID_HEX $dev
- sg_persist --in --read-status $dev
- if [ $? -ne 0 ]
- then
- return $OCF_ERR_GENERIC
- fi
- fi
+ if sg_persist_is_registered $dev
+ then
+ : OK
+ else
+ sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=0 --param-sark=$NODE_ID_HEX $dev
+ sg_persist --in --read-status $dev
+ if [ $? -ne 0 ]
+ then
+ return $OCF_ERR_GENERIC
+ fi
+ fi
done
return $OCF_SUCCESS
@@ -555,21 +545,16 @@
if [ ${#REGISTERED_DEVS[*]} -eq 0 ]
then
- ocf_log debug "$RESOURCE stop: already no registrations"
-
+ ocf_log debug "$RESOURCE stop: already no registrations"
else
- # Clear preference for becoming master
- #sg_persist_do_cmd $CRM_MASTER -D
- #sg_persist_do_cmd $MASTER_SCORE_UPDATER --delete
- sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --delete
- #sg_persist_do_cmd $CRM_MASTER --delete-attr
- #sg_persist_do_cmd $PENDING_UPDATER --delete
- sg_persist_do_cmd $PENDING_ATTRIBUTE --delete
-
- for dev in ${REGISTERED_DEVS[*]}
- do
- sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=$NODE_ID_HEX --param-sark=0 $dev
- done
+ # Clear preference for becoming master
+ sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --delete
+ sg_persist_do_cmd $PENDING_ATTRIBUTE --delete
+
+ for dev in ${REGISTERED_DEVS[*]}
+ do
+ sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=$NODE_ID_HEX --param-sark=0 $dev
+ done
fi
return $OCF_SUCCESS
@@ -580,8 +565,8 @@
arr_str=""
for str in "$@"
do
- arr_str="$arr_str[$str_count]:$str "
- str_count=$(($str_count+1))
+ arr_str="$arr_str[$str_count]:$str "
+ str_count=$(($str_count+1))
done
echo $arr_str
}
@@ -593,16 +578,16 @@
if [ -n "$ACT_PENDING" ]
then
- ACT_PENDING_TS=${ACT_PENDING%%_*}
- ACT_PENDING_SCORE=${ACT_PENDING##*_}
+ ACT_PENDING_TS=${ACT_PENDING%%_*}
+ ACT_PENDING_SCORE=${ACT_PENDING##*_}
fi
}
sg_persist_clear_pending() {
if [ -n "$ACT_PENDING" ]
then
- DO_PENDING_UPDATE="YES"
- NEW_PENDING=""
+ DO_PENDING_UPDATE="YES"
+ NEW_PENDING=""
fi
}
@@ -618,9 +603,7 @@
sg_persist_action_monitor() {
- #ACT_MASTER_SCORE=`sg_persist_do_cmd $ATTRD_UPDATER --query`
ACT_MASTER_SCORE=`sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --query --quiet`
- #ACT_MASTER_SCORE=`sg_persist_do_cmd $CRM_MASTER --get-value --quiet`
ocf_log debug "$RESOURCE monitor: ACT_MASTER_SCORE=$ACT_MASTER_SCORE"
ACT_PENDING=`sg_persist_do_cmd $PENDING_ATTRIBUTE --query --quiet`
@@ -636,101 +619,99 @@
DO_PENDING_UPDATE="NO"
if [ -n "$ACT_MASTER_SCORE" ]
then
- if [ $ACT_MASTER_SCORE -ne $MASTER_SCORE ]
- then
-
- if [ "$ROLE" == "Master" ]
- then
- if [ $MASTER_SCORE -lt $ACT_MASTER_SCORE ]
- then
- if [ -n "$ACT_PENDING" ]
- then
- if [ $(($NOW-$ACT_PENDING_TS-$MASTER_SCORE_DELAY)) -ge 0 ]
- then
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- fi
- else
- if [ $MASTER_SCORE_DELAY -eq 0 ]
- then
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- else
- sg_persist_new_pending "${NOW}_${MASTER_SCORE}"
- fi
- fi
- else
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- fi
- else
- if [ $MASTER_SCORE -gt $ACT_MASTER_SCORE ]
- then
- if [ -n "$ACT_PENDING" ]
- then
- if [ $(($NOW-$ACT_PENDING_TS-$MASTER_SCORE_DELAY)) -ge 0 ]
- then
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- fi
- else
- if [ $MASTER_SCORE_DELAY -eq 0 ]
- then
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- else
- sg_persist_new_pending "${NOW}_${MASTER_SCORE}"
- fi
- fi
- else
- sg_persist_new_master_score $MASTER_SCORE
- sg_persist_clear_pending
- fi
- fi
- else
- sg_persist_clear_pending
- fi
+ if [ $ACT_MASTER_SCORE -ne $MASTER_SCORE ]
+ then
+ if [ "$ROLE" == "Master" ]
+ then
+ if [ $MASTER_SCORE -lt $ACT_MASTER_SCORE ]
+ then
+ if [ -n "$ACT_PENDING" ]
+ then
+ if [ $(($NOW-$ACT_PENDING_TS-$MASTER_SCORE_DELAY)) -ge 0 ]
+ then
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ fi
+ else
+ if [ $MASTER_SCORE_DELAY -eq 0 ]
+ then
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ else
+ sg_persist_new_pending "${NOW}_${MASTER_SCORE}"
+ fi
+ fi
+ else
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ fi
+ else
+ if [ $MASTER_SCORE -gt $ACT_MASTER_SCORE ]
+ then
+ if [ -n "$ACT_PENDING" ]
+ then
+ if [ $(($NOW-$ACT_PENDING_TS-$MASTER_SCORE_DELAY)) -ge 0 ]
+ then
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ fi
+ else
+ if [ $MASTER_SCORE_DELAY -eq 0 ]
+ then
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ else
+ sg_persist_new_pending "${NOW}_${MASTER_SCORE}"
+ fi
+ fi
+ else
+ sg_persist_new_master_score $MASTER_SCORE
+ sg_persist_clear_pending
+ fi
+ fi
+ else
+ sg_persist_clear_pending
+ fi
fi
if [ $DO_MASTER_SCORE_UPDATE == "YES" ]
then
- sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --update=$NEW_MASTER_SCORE
- #sg_persist_do_cmd CRM_MASTER --update=$NEW_MASTER_SCORE
+ sg_persist_do_cmd $MASTER_SCORE_ATTRIBUTE --update=$NEW_MASTER_SCORE
fi
if [ $DO_PENDING_UPDATE == "YES" ]
then
- sg_persist_do_cmd $PENDING_ATTRIBUTE --update=$NEW_PENDING
+ sg_persist_do_cmd $PENDING_ATTRIBUTE --update=$NEW_PENDING
fi
if [ ${#REGISTERED_DEVS[*]} -eq 0 ]
then
- ocf_log debug "$RESOURCE monitor: no registrations"
- return $OCF_NOT_RUNNING
+ ocf_log debug "$RESOURCE monitor: no registrations"
+ return $OCF_NOT_RUNNING
fi
if [ ${#RESERVED_DEVS[*]} -gt 0 ]
then
- return $OCF_RUNNING_MASTER
+ return $OCF_RUNNING_MASTER
fi
if [ ${#REGISTERED_DEVS[*]} -gt 0 ]
then
- if [ $RESERVATION_TYPE -eq 7 ] || [ $RESERVATION_TYPE -eq 8]
- then
- if [ ${#DEVS_WITH_RESERVATION[*]} -gt 0 ]
- then
- return $OCF_RUNNING_MASTER
- else
- return $OCF_SUCCESS
- fi
- else
- return $OCF_SUCCESS
- fi
+ if [ $RESERVATION_TYPE -eq 7 ] || [ $RESERVATION_TYPE -eq 8]
+ then
+ if [ ${#DEVS_WITH_RESERVATION[*]} -gt 0 ]
+ then
+ return $OCF_RUNNING_MASTER
+ else
+ return $OCF_SUCCESS
+ fi
+ else
+ return $OCF_SUCCESS
+ fi
fi
ocf_log err "$RESOURCE monitor: unexpected state"
-
+
return $OCF_ERR_GENERIC
}
@@ -738,73 +719,73 @@
if [ ${#RESERVED_DEVS[*]} -gt 0 ]
then
- ocf_log info "$RESOURCE promote: already master"
- return $OCF_SUCCESS
+ ocf_log info "$RESOURCE promote: already master"
+ return $OCF_SUCCESS
fi
for dev in ${WORKING_DEVS[*]}
do
- reservation_key=`sg_persist_get_reservation_key $dev`
- echo "RK=$reservation_key"
- if [ $RESERVATION_TYPE -eq 1 ] || [ $RESERVATION_TYPE -eq 3 ] || [ $RESERVATION_TYPE -eq 5 ] || [ $RESERVATION_TYPE -eq 6 ]
- then
- if [ "$reservation_key" == "" ]
- then
- sg_persist_do_cmd $SG_PERSIST --out --reserve --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
- if [ $? -ne 0 ]
- then
- return $OCF_ERR_GENERIC
- fi
- else
- sg_persist_do_cmd $SG_PERSIST --out --preempt --param-sark=$reservation_key --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
- if [ $? -ne 0 ]
- then
- return $OCF_ERR_GENERIC
- fi
- fi
- else
- if [ "$reservation_key" == "" ]
- then
- sg_persist_do_cmd $SG_PERSIST --out --reserve --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
- if [ $? -ne 0 ]
- then
- return $OCF_ERR_GENERIC
- fi
- else
- ocf_log info "$RESOURCE promote: there already exist an reservation holder, all registrants become reservation holders"
- return $OCF_SUCCESS
- fi
- fi
+ reservation_key=`sg_persist_get_reservation_key $dev`
+ echo "RK=$reservation_key"
+ if [ $RESERVATION_TYPE -eq 1 ] || [ $RESERVATION_TYPE -eq 3 ] || [ $RESERVATION_TYPE -eq 5 ] || [ $RESERVATION_TYPE -eq 6 ]
+ then
+ if [ "$reservation_key" == "" ]
+ then
+ sg_persist_do_cmd $SG_PERSIST --out --reserve --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
+ if [ $? -ne 0 ]
+ then
+ return $OCF_ERR_GENERIC
+ fi
+ else
+ sg_persist_do_cmd $SG_PERSIST --out --preempt --param-sark=$reservation_key --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
+ if [ $? -ne 0 ]
+ then
+ return $OCF_ERR_GENERIC
+ fi
+ fi
+ else
+ if [ "$reservation_key" == "" ]
+ then
+ sg_persist_do_cmd $SG_PERSIST --out --reserve --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
+ if [ $? -ne 0 ]
+ then
+ return $OCF_ERR_GENERIC
+ fi
+ else
+ ocf_log info "$RESOURCE promote: there already exist an reservation holder, all registrants become reservation holders"
+ return $OCF_SUCCESS
+ fi
+ fi
done
return $OCF_SUCCESS
}
sg_persist_action_demote() {
- #in case of 7/8, --release won't realse the reservation unless unregister the key.
+ #in case of 7/8, --release won't release the reservation unless unregister the key.
if [ $RESERVATION_TYPE -eq 7 ] || [ $RESERVATION_TYPE -eq 8 ]
then
- if [ ${#REGISTERED_DEVS[*]} -eq 0 ]
- then
- ocf_log info "$RESOURCE promote: already slave"
- return $OCF_SUCCESS
- fi
-
- for dev in ${REGISTERED_DEVS[*]}
- do
- sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=$NODE_ID_HEX --param-sark=0 $dev
- done
+ if [ ${#REGISTERED_DEVS[*]} -eq 0 ]
+ then
+ ocf_log info "$RESOURCE demote: already slave"
+ return $OCF_SUCCESS
+ fi
+
+ for dev in ${REGISTERED_DEVS[*]}
+ do
+ sg_persist_do_cmd $SG_PERSIST --out --register --param-rk=$NODE_ID_HEX --param-sark=0 $dev
+ done
else
- if [ ${#RESERVED_DEVS[*]} -eq 0 ]
- then
- ocf_log info "$RESOURCE promote: already slave"
- return $OCF_SUCCESS
- fi
-
- for dev in ${RESERVED_DEVS[*]}
- do
- sg_persist_do_cmd $SG_PERSIST --out --release --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
- done
+ if [ ${#RESERVED_DEVS[*]} -eq 0 ]
+ then
+ ocf_log info "$RESOURCE demote: already slave"
+ return $OCF_SUCCESS
+ fi
+
+ for dev in ${RESERVED_DEVS[*]}
+ do
+ sg_persist_do_cmd $SG_PERSIST --out --release --param-rk=$NODE_ID_HEX --prout-type=$RESERVATION_TYPE $dev
+ done
fi
return $OCF_SUCCESS
@@ -821,27 +802,27 @@
local n_start="$#"
ocf_log debug "$RESOURCE notify: $n_type for $n_op - counts: active $n_active - starting $n_start - stopping $n_stop"
-
+
return $OCF_SUCCESS
}
sg_persist_action_validate_all () {
if [ -n "$SG_PERSIST_CONF" ] && [ ! -f "$SG_PERSIST_CONF" ]
then
- ocf_log err "Configuration file does not exist: $SG_PERSIST_CONF"
- return $OCF_ERR_CONFIGURED
+ ocf_log err "Configuration file does not exist: $SG_PERSIST_CONF"
+ return $OCF_ERR_CONFIGURED
fi
if [ -z "$RESOURCE" ]
then
- ocf_log err "No resource name specified!"
- return $OCF_ERR_ARGS
+ ocf_log err "No resource name specified!"
+ return $OCF_ERR_ARGS
fi
-
+
if [ "$OCF_RESKEY_CRM_meta_master_max" != "1" ] && [ "$RESERVATION_TYPE" != "7" ] && [ "$RESERVATION_TYPE" != "8" ]
then
- ocf_log err "Master options misconfigured."
- exit $OCF_ERR_CONFIGURED
+ ocf_log err "Master options misconfigured."
+ exit $OCF_ERR_CONFIGURED
fi
return $OCF_SUCCESS
@@ -858,53 +839,56 @@
ACTION=$1
case $ACTION in
- meta-data)
- meta_data
- ;;
-
- validate-all)
- sg_persist_init
- sg_persist_action_validate_all
- ;;
+ meta-data)
+ meta_data
+ ;;
+
+ validate-all)
+ sg_persist_init
+ sg_persist_action_validate_all
+ ;;
start|promote)
- ocf_log debug "$RESOURCE: starting action \"$ACTION\""
- #ocf_log debug `env`
-
- sg_persist_init
- sg_persist_action_$ACTION
- exit $?
- ;;
-
+ ocf_log debug "$RESOURCE: starting action \"$ACTION\""
+ #ocf_log debug `env`
+
+ sg_persist_init
+ sg_persist_action_$ACTION
+ exit $?
+ ;;
+
monitor)
- FORCE_OCF_SUCCESS='YES'
- ocf_log debug "$RESOURCE: starting action \"$ACTION\""
- #ocf_log debug `env`
-
- sg_persist_init
- sg_persist_action_$ACTION
- exit $?
- ;;
- stop|demote)
- FORCE_OCF_SUCCESS='YES'
- ocf_log debug "$RESOURCE: starting action \"$ACTION\""
-
- sg_persist_init
- sg_persist_action_$ACTION
- exit $OCF_SUCCESS
- ;;
-
- notify)
- sg_persist_action_notify
- exit $?
- ;;
-
- usage|help)
- sg_persist_action_usage
- exit $OCF_SUCCESS
- ;;
-
- *) sg_persist_action_usage
- exit $OCF_ERR_ARGS
- ;;
-esac
+ FORCE_OCF_SUCCESS='YES'
+ ocf_log debug "$RESOURCE: starting action \"$ACTION\""
+ #ocf_log debug `env`
+
+ sg_persist_init
+ sg_persist_action_$ACTION
+ exit $?
+ ;;
+
+ stop|demote)
+ FORCE_OCF_SUCCESS='YES'
+ ocf_log debug "$RESOURCE: starting action \"$ACTION\""
+
+ sg_persist_init
+ sg_persist_action_$ACTION
+ exit $OCF_SUCCESS
+ ;;
+
+ notify)
+ sg_persist_action_notify
+ exit $?
+ ;;
+
+ usage|help)
+ sg_persist_action_usage
+ exit $OCF_SUCCESS
+ ;;
+
+ *)
+ sg_persist_action_usage
+ exit $OCF_ERR_ARGS
+ ;;
+
+ esac