Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
SUSE:SLE-15-SP1:Update
pacemaker.27558
bsc#1175557-0006-Low-extra-quote-shell-variable...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc#1175557-0006-Low-extra-quote-shell-variables-in-agent-code-where-.patch of Package pacemaker.27558
From 06439cc5b15f9201db181e5740ec9dd4bce5fcf9 Mon Sep 17 00:00:00 2001 From: Ken Gaillot <kgaillot@redhat.com> Date: Wed, 17 Jul 2019 14:13:20 -0500 Subject: [PATCH 6/6] Low: extra: quote shell variables in agent code where appropriate ... and correspondingly, don't quote where inappropriate (i.e. numeric comparisons), for general good practice, resilience against misconfigurations, and improved support for spaces in some user input values. --- extra/resources/ClusterMon.in | 40 +++++++------- extra/resources/Dummy | 14 ++--- extra/resources/HealthCPU | 16 +++--- extra/resources/HealthIOWait | 12 ++--- extra/resources/HealthSMART.in | 54 +++++++++---------- extra/resources/Stateful | 43 ++++++++------- extra/resources/SysInfo.in | 48 ++++++++--------- extra/resources/SystemHealth | 12 ++--- extra/resources/attribute | 12 ++--- extra/resources/controld | 22 ++++---- extra/resources/ifspeed.in | 98 +++++++++++++++++----------------- extra/resources/o2cb.in | 22 ++++---- extra/resources/ping | 40 +++++++------- extra/resources/pingd | 14 ++--- extra/resources/remote | 6 +-- 15 files changed, 228 insertions(+), 225 deletions(-) diff --git a/extra/resources/ClusterMon.in b/extra/resources/ClusterMon.in index cc687acd8..407202a8a 100755 --- a/extra/resources/ClusterMon.in +++ b/extra/resources/ClusterMon.in @@ -23,9 +23,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -117,30 +117,30 @@ ClusterMon_exit() { } ClusterMon_start() { - if [ ! -z $OCF_RESKEY_user ]; then - su - $OCF_RESKEY_user -c "$CMON_CMD" + if [ ! -z "$OCF_RESKEY_user" ]; then + su - "$OCF_RESKEY_user" -c "$CMON_CMD" else - $CMON_CMD + eval $CMON_CMD fi ClusterMon_exit $? } ClusterMon_stop() { - if [ -f $OCF_RESKEY_pidfile ]; then - pid=`cat $OCF_RESKEY_pidfile` - if [ ! -z $pid ]; then + if [ -f "$OCF_RESKEY_pidfile" ]; then + pid=`cat "$OCF_RESKEY_pidfile"` + if [ ! -z "$pid" ]; then kill -s 9 $pid - rm -f $OCF_RESKEY_pidfile + rm -f "$OCF_RESKEY_pidfile" fi fi ClusterMon_exit 0 } ClusterMon_monitor() { - if [ -f $OCF_RESKEY_pidfile ]; then - pid=`cat $OCF_RESKEY_pidfile` - if [ ! -z $pid ]; then - str=$(echo "su - $OCF_RESKEY_user -c \"$CMON_CMD\"" | tr 'crmon, \t' 'xxxxxxxx') + if [ -f "$OCF_RESKEY_pidfile" ]; then + pid=`cat "$OCF_RESKEY_pidfile"` + if [ ! -z "$pid" ]; then + str=$(echo "su - \"$OCF_RESKEY_user\" -c \"$CMON_CMD\"" | tr 'crmon, \t' 'xxxxxxxx') ps -o "args=${str}" -p $pid 2>/dev/null | \ grep -qE "[c]rm_mon.*${OCF_RESKEY_pidfile}" rc=$? @@ -157,7 +157,7 @@ ClusterMon_monitor() { CheckOptions() { while getopts Vi:nrh:cdp: OPTION do - case $OPTION in + case "$OPTION" in V|n|r|c|d);; i) ocf_log warn "You should not have specified the -i option, since OCF_RESKEY_update is set already!";; h) ocf_log warn "You should not have specified the -h option, since OCF_RESKEY_htmlfile is set already!";; @@ -181,7 +181,7 @@ fi ClusterMon_validate() { # Existence of the user - if [ ! -z $OCF_RESKEY_user ]; then + if [ ! -z "$OCF_RESKEY_user" ]; then getent passwd "$OCF_RESKEY_user" >/dev/null if [ $? -eq 0 ]; then : Yes, user exists. We can further check his permission on crm_mon if necessary @@ -192,7 +192,7 @@ ClusterMon_validate() { fi # Pidfile better be an absolute path - case $OCF_RESKEY_pidfile in + case "$OCF_RESKEY_pidfile" in /*) ;; *) ocf_log warn "You should have pidfile($OCF_RESKEY_pidfile) of absolute path!" ;; esac @@ -213,7 +213,7 @@ ClusterMon_validate() { fi # Htmlfile better be an absolute path - case $OCF_RESKEY_htmlfile in + case "$OCF_RESKEY_htmlfile" in /*) ;; *) ocf_log warn "You should have htmlfile($OCF_RESKEY_htmlfile) of absolute path!" ;; esac @@ -235,9 +235,9 @@ if [ ${OCF_RESKEY_update} -ge 1000 ]; then OCF_RESKEY_update=$(( $OCF_RESKEY_update / 1000 )) fi -CMON_CMD="${HA_SBIN_DIR}/crm_mon -p $OCF_RESKEY_pidfile -d -i $OCF_RESKEY_update $OCF_RESKEY_extra_options -h $OCF_RESKEY_htmlfile" +CMON_CMD="${HA_SBIN_DIR}/crm_mon -p \"$OCF_RESKEY_pidfile\" -d -i $OCF_RESKEY_update $OCF_RESKEY_extra_options -h \"$OCF_RESKEY_htmlfile\"" -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/Dummy b/extra/resources/Dummy index be93c92ea..89eee588d 100755 --- a/extra/resources/Dummy +++ b/extra/resources/Dummy @@ -17,9 +17,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -163,7 +163,7 @@ dummy_start() { dummy_stop() { dummy_monitor --force if [ $? -eq $OCF_SUCCESS ]; then - rm ${OCF_RESKEY_state} + rm "${OCF_RESKEY_state}" fi rm -f "${VERIFY_SERIALIZED_FILE}" return $OCF_SUCCESS @@ -232,7 +232,7 @@ dummy_validate() { return $OCF_SUCCESS } -: ${OCF_RESKEY_fake:=dummy} +: ${OCF_RESKEY_fake:="dummy"} : ${OCF_RESKEY_op_sleep:=0} : ${OCF_RESKEY_CRM_meta_interval:=0} : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} @@ -240,7 +240,7 @@ dummy_validate() { if [ -z "$OCF_RESKEY_state" ]; then OCF_RESKEY_state="${HA_VARRUN%%/}/Dummy-${OCF_RESOURCE_INSTANCE}.state" - if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then + if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then # Strip off the trailing clone marker (note + is not portable in sed) OCF_RESKEY_state=`echo $OCF_RESKEY_state | sed s/:[0-9][0-9]*\.state/.state/` fi @@ -249,7 +249,7 @@ VERIFY_SERIALIZED_FILE="${OCF_RESKEY_state}.serialized" dump_env -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/HealthCPU b/extra/resources/HealthCPU index 053ade05f..5ae5c13c6 100755 --- a/extra/resources/HealthCPU +++ b/extra/resources/HealthCPU @@ -23,9 +23,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -96,13 +96,13 @@ dummy_start() { if [ $? = $OCF_SUCCESS ]; then return $OCF_SUCCESS fi - touch ${OCF_RESKEY_state} + touch "${OCF_RESKEY_state}" } dummy_stop() { dummy_monitor if [ $? = $OCF_SUCCESS ]; then - rm ${OCF_RESKEY_state} + rm "${OCF_RESKEY_state}" fi return $OCF_SUCCESS } @@ -112,7 +112,7 @@ dummy_monitor() { # (SUCCESS), failed (ERROR) or _cleanly_ stopped (NOT RUNNING). # That is THREE states, not just yes/no. - if [ -f ${OCF_RESKEY_state} ]; then + if [ -f "${OCF_RESKEY_state}" ]; then IDLE=`top -b -n2 | grep Cpu | tail -1 | awk -F",|.[0-9][ %]id" '{ print $4 }'` # echo "System idle: " $IDLE @@ -159,7 +159,7 @@ dummy_validate() { : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} if [ "x$OCF_RESKEY_state" = "x" ]; then - if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then + if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then state="${HA_VARRUN%%/}/Dummy-${OCF_RESOURCE_INSTANCE}.state" # Strip off the trailing clone marker @@ -177,7 +177,7 @@ if [ "x${OCF_RESKEY_yellow_limit}" = "x" ] ; then OCF_RESKEY_yellow_limit=50 fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/HealthIOWait b/extra/resources/HealthIOWait index 8d21bbb45..00512bc4c 100755 --- a/extra/resources/HealthIOWait +++ b/extra/resources/HealthIOWait @@ -16,9 +16,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -95,7 +95,7 @@ agent_start() { agent_stop() { agent_monitor if [ $? = $OCF_SUCCESS ]; then - rm ${OCF_RESKEY_state} + rm "${OCF_RESKEY_state}" fi return $OCF_SUCCESS } @@ -104,7 +104,7 @@ agent_monitor() { # Monitor _MUST!_ differentiate correctly between running # (SUCCESS), failed (ERROR) or _cleanly_ stopped (NOT RUNNING). # That is THREE states, not just yes/no. - if [ -f ${OCF_RESKEY_state} ]; then + if [ -f "${OCF_RESKEY_state}" ]; then WAIT=`top -b -n2 | grep Cpu | tail -1 | awk -F",|.[0-9][ %]wa" '{ print $5 }'` # echo "System iowait: " $WAIT # echo $OCF_RESKEY_yellow_limit @@ -139,7 +139,7 @@ agent_validate() { : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} if [ "x$OCF_RESKEY_state" = "x" ]; then - if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then + if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then state="${HA_VARRUN%%/}/HealthIoWait-${OCF_RESOURCE_INSTANCE}.state" #Strip off the trailing clone marker OCF_RESKEY_state=`echo $state | sed s/:[0-9][0-9]*\.state/.state/` diff --git a/extra/resources/HealthSMART.in b/extra/resources/HealthSMART.in index 5f0815dd3..18ace44f5 100755 --- a/extra/resources/HealthSMART.in +++ b/extra/resources/HealthSMART.in @@ -19,9 +19,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} # SMARTCTL=/usr/sbin/smartctl ATTRDUP=/usr/sbin/attrd_updater @@ -110,25 +110,25 @@ check_temperature() { if [ $1 -lt ${lower_red_limit} ] ; then ocf_log info "Drive ${DRIVE} ${DEVICE} too cold: ${1} C" - $ATTRDUP -n "#health-smart" -U "red" -d "5s" + "$ATTRDUP" -n "#health-smart" -U "red" -d "5s" return 1 fi if [ $1 -gt ${upper_red_limit} ] ; then ocf_log info "Drive ${DRIVE} ${DEVICE} too hot: ${1} C" - $ATTRDUP -n "#health-smart" -U "red" -d "5s" + "$ATTRDUP" -n "#health-smart" -U "red" -d "5s" return 1 fi if [ $1 -lt ${lower_yellow_limit} ] ; then ocf_log info "Drive ${DRIVE} ${DEVICE} quite cold: ${1} C" - $ATTRDUP -n "#health-smart" -U "yellow" -d "5s" + "$ATTRDUP" -n "#health-smart" -U "yellow" -d "5s" return 1 fi if [ $1 -gt ${upper_yellow_limit} ] ; then ocf_log info "Drive ${DRIVE} ${DEVICE} quite hot: ${1} C" - $ATTRDUP -n "#health-smart" -U "yellow" -d "5s" + "$ATTRDUP" -n "#health-smart" -U "yellow" -d "5s" return 1 fi } @@ -136,20 +136,20 @@ check_temperature() { init_smart() { #Set temperature defaults - if [ -z ${OCF_RESKEY_temp_warning} ]; then + if [ -z "${OCF_RESKEY_temp_warning}" ]; then yellow_threshold=5 else yellow_threshold=${OCF_RESKEY_temp_warning} fi - if [ -z ${OCF_RESKEY_temp_lower_limit} ] ; then + if [ -z "${OCF_RESKEY_temp_lower_limit}" ] ; then lower_red_limit=0 else lower_red_limit=${OCF_RESKEY_temp_lower_limit} fi lower_yellow_limit=$((${lower_red_limit}+${yellow_threshold})) - if [ -z ${OCF_RESKEY_temp_upper_limit} ] ; then + if [ -z "${OCF_RESKEY_temp_upper_limit}" ] ; then upper_red_limit=60 else upper_red_limit=${OCF_RESKEY_temp_upper_limit} @@ -164,7 +164,7 @@ init_smart() { fi #Test for presence of smartctl - if [ ! -x $SMARTCTL ] ; then + if [ ! -x "$SMARTCTL" ] ; then ocf_log err "${SMARTCTL} not installed." exit $OCF_ERR_INSTALLED fi @@ -172,15 +172,15 @@ init_smart() { for DRIVE in $DRIVES; do if [ "${OCF_RESKEY_devices}" ]; then for DEVICE in ${OCF_RESKEY_devices}; do - $SMARTCTL -d $DEVICE -i ${DRIVE} | grep -q "SMART support is: Enabled" - if [ $? -ne "0" ] ; then + "$SMARTCTL" -d "$DEVICE" -i "${DRIVE}" | grep -q "SMART support is: Enabled" + if [ $? -ne 0 ] ; then ocf_log err "S.M.A.R.T. not enabled for drive "${DRIVE} exit $OCF_ERR_INSTALLED fi done else - $SMARTCTL -i ${DRIVE} | grep -q "SMART support is: Enabled" - if [ $? -ne "0" ] ; then + "$SMARTCTL" -i "${DRIVE}" | grep -q "SMART support is: Enabled" + if [ $? -ne 0 ] ; then ocf_log err "S.M.A.R.T. not enabled for drive "${DRIVE} exit $OCF_ERR_INSTALLED fi @@ -201,13 +201,13 @@ HealthSMART_start() { if [ $? = $OCF_SUCCESS ]; then return $OCF_SUCCESS fi - touch ${OCF_RESKEY_state} + touch "${OCF_RESKEY_state}" } HealthSMART_stop() { HealthSMART_monitor if [ $? = $OCF_SUCCESS ]; then - rm ${OCF_RESKEY_state} + rm "${OCF_RESKEY_state}" fi return $OCF_SUCCESS } @@ -220,22 +220,22 @@ HealthSMART_monitor() { # (SUCCESS), failed (ERROR) or _cleanly_ stopped (NOT RUNNING). # That is THREE states, not just yes/no. - if [ -f ${OCF_RESKEY_state} ]; then + if [ -f "${OCF_RESKEY_state}" ]; then # Check overall S.M.A.R.T. status for DRIVE in $DRIVES; do if [ "${OCF_RESKEY_devices}" ]; then for DEVICE in ${OCF_RESKEY_devices}; do - $SMARTCTL -d $DEVICE -H ${DRIVE} | grep -q "SMART overall-health self-assessment test result: PASSED" - if [ $? -ne "0" ]; then - $ATTRDUP -n "#health-smart" -U "red" -d "5s" + "$SMARTCTL" -d "$DEVICE" -H ${DRIVE} | grep -q "SMART overall-health self-assessment test result: PASSED" + if [ $? -ne 0 ]; then + "$ATTRDUP" -n "#health-smart" -U "red" -d "5s" return $OCF_SUCCESS fi done else - $SMARTCTL -H ${DRIVE} | grep -q "SMART overall-health self-assessment test result: PASSED" - if [ $? -ne "0" ]; then - $ATTRDUP -n "#health-smart" -U "red" -d "5s" + "$SMARTCTL" -H "${DRIVE}" | grep -q "SMART overall-health self-assessment test result: PASSED" + if [ $? -ne 0 ]; then + "$ATTRDUP" -n "#health-smart" -U "red" -d "5s" return $OCF_SUCCESS fi fi @@ -256,7 +256,7 @@ HealthSMART_monitor() { fi done - $ATTRDUP -n "#health-smart" -U "green" -d "5s" + "$ATTRDUP" -n "#health-smart" -U "green" -d "5s" return $OCF_SUCCESS fi @@ -283,7 +283,7 @@ HealthSMART_validate() { : ${OCF_RESKEY_CRM_meta_globally_unique:="true"} if [ "x$OCF_RESKEY_state" = "x" ]; then - if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then + if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then state="${HA_VARRUN%%/}/HealthSMART-${OCF_RESOURCE_INSTANCE}.state" # Strip off the trailing clone marker @@ -293,7 +293,7 @@ if [ "x$OCF_RESKEY_state" = "x" ]; then fi fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in start) HealthSMART_start;; stop) HealthSMART_stop;; monitor) HealthSMART_monitor;; diff --git a/extra/resources/Stateful b/extra/resources/Stateful index e65c96c1b..43ddfabd5 100755 --- a/extra/resources/Stateful +++ b/extra/resources/Stateful @@ -17,10 +17,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} -CRM_MASTER="${HA_SBIN_DIR}/crm_master -l reboot" +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -91,13 +90,13 @@ END } stateful_update() { - echo $1 > ${OCF_RESKEY_state} + echo $1 > "${OCF_RESKEY_state}" } stateful_check_state() { - target=$1 - if [ -f ${OCF_RESKEY_state} ]; then - state=`cat ${OCF_RESKEY_state}` + target="$1" + if [ -f "${OCF_RESKEY_state}" ]; then + state=`cat "${OCF_RESKEY_state}"` if [ "x$target" = "x$state" ]; then return 0 fi @@ -119,6 +118,10 @@ $(env | sort) fi } +set_master_score() { + "${HA_SBIN_DIR}/crm_master" -l reboot -v "$1" +} + stateful_start() { stateful_check_state master if [ $? = 0 ]; then @@ -126,7 +129,7 @@ stateful_start() { return $OCF_RUNNING_MASTER fi stateful_update slave - $CRM_MASTER -v ${slave_score} + set_master_score "${slave_score}" return 0 } @@ -137,7 +140,7 @@ stateful_demote() { return $OCF_NOT_RUNNING fi stateful_update slave - $CRM_MASTER -v ${slave_score} + set_master_score "${slave_score}" return 0 } @@ -147,19 +150,19 @@ stateful_promote() { return $OCF_NOT_RUNNING fi stateful_update master - $CRM_MASTER -v ${master_score} + set_master_score "${master_score}" return 0 } stateful_stop() { - $CRM_MASTER -D + "${HA_SBIN_DIR}/crm_master" -l reboot -D stateful_check_state master if [ $? = 0 ]; then # CRM Error - Should never happen return $OCF_RUNNING_MASTER fi - if [ -f ${OCF_RESKEY_state} ]; then - rm ${OCF_RESKEY_state} + if [ -f "${OCF_RESKEY_state}" ]; then + rm "${OCF_RESKEY_state}" fi return 0 } @@ -169,7 +172,7 @@ stateful_monitor() { if [ $? = 0 ]; then if [ $OCF_RESKEY_CRM_meta_interval = 0 ]; then # Restore the master setting during probes - $CRM_MASTER -v ${master_score} + set_master_score "${master_score}" fi return $OCF_RUNNING_MASTER fi @@ -178,14 +181,14 @@ stateful_monitor() { if [ $? = 0 ]; then if [ $OCF_RESKEY_CRM_meta_interval = 0 ]; then # Restore the master setting during probes - $CRM_MASTER -v ${slave_score} + set_master_score "${slave_score}" fi return $OCF_SUCCESS fi - if [ -f ${OCF_RESKEY_state} ]; then + if [ -f "${OCF_RESKEY_state}" ]; then echo "File '${OCF_RESKEY_state}' exists but contains unexpected contents" - cat ${OCF_RESKEY_state} + cat "${OCF_RESKEY_state}" return $OCF_ERR_GENERIC fi return 7 @@ -210,7 +213,7 @@ stateful_validate() { : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} if [ "x$OCF_RESKEY_state" = "x" ]; then - if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then + if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then state="${HA_VARRUN%%/}/Stateful-${OCF_RESOURCE_INSTANCE}.state" # Strip off the trailing clone marker @@ -222,7 +225,7 @@ fi dump_env -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data;; start) stateful_start;; promote) stateful_promote;; diff --git a/extra/resources/SysInfo.in b/extra/resources/SysInfo.in index 022ebd0d9..562546b4d 100755 --- a/extra/resources/SysInfo.in +++ b/extra/resources/SysInfo.in @@ -17,9 +17,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -134,13 +134,13 @@ END ####################################################################### UpdateStat() { - name=$1; shift + name="$1"; shift value="$*" printf "%s:\t%s\n" "$name" "$value" if [ "$__OCF_ACTION" = "start" ] ; then - ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n $name -B "$value" + "${HA_SBIN_DIR}/attrd_updater" ${OCF_RESKEY_delay} -S status -n $name -B "$value" else - ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n $name -v "$value" + "${HA_SBIN_DIR}/attrd_updater" ${OCF_RESKEY_delay} -S status -n $name -v "$value" fi } @@ -153,8 +153,8 @@ SysInfoStats() { "Darwin") mem=`top -l 1 | grep Mem: | awk '{print $10}'` mem_used=`top -l 1 | grep Mem: | awk '{print $8}'` - mem=`SysInfo_mem_units $mem` - mem_used=`SysInfo_mem_units $mem_used` + mem=`SysInfo_mem_units "$mem"` + mem_used=`SysInfo_mem_units "$mem_used"` mem_total=`expr $mem_used + $mem` cpu_type=`system_profiler SPHardwareDataType | awk -F': ' '/^CPU Type/ {print $2; exit}'` cpu_speed=`system_profiler SPHardwareDataType | awk -F': ' '/^CPU Speed/ {print $2; exit}'` @@ -185,7 +185,7 @@ SysInfoStats() { if [ -f /proc/meminfo ]; then # meminfo results are in kB mem=`grep "SwapFree" /proc/meminfo | awk '{print $2"k"}'` - if [ ! -z $mem ]; then + if [ ! -z "$mem" ]; then UpdateStat free_swap "$(SysInfo_mem_units "$mem")" fi mem=`grep "Inactive" /proc/meminfo | awk '{print $2"k"}'` @@ -224,11 +224,11 @@ SysInfoStats() { # 'tail -n <c>' to the equivalent 'tail -<c>'. for disk in "/" ${OCF_RESKEY_disks}; do unset disk_free disk_label - disk_free=`df -h ${disk} | tail -1 | awk '{print $4}'` + disk_free=`df -h "${disk}" | tail -1 | awk '{print $4}'` if [ x != x"$disk_free" ]; then disk_label=`echo $disk | sed -e 's#^/$#root#;s#^/*##;s#/#_#g'` - disk_free=`SysInfo_hdd_units $disk_free` - UpdateStat ${disk_label}_free $disk_free + disk_free=`SysInfo_hdd_units "$disk_free"` + UpdateStat "${disk_label}_free" $disk_free if [ -n "$MIN_FREE" ]; then if [ $disk_free -le $MIN_FREE ]; then UpdateStat "#health_disk" "red" @@ -252,9 +252,9 @@ SysInfo_megabytes() { } SysInfo_mem_units() { - mem=$1 + mem="$1" - if [ -z $1 ]; then + if [ -z "$1" ]; then return fi @@ -271,7 +271,7 @@ SysInfo_mem_units() { SysInfo_hdd_units() { # Defauts to size in gigabytes - case $OCF_RESKEY_disk_unit in + case "$OCF_RESKEY_disk_unit" in [Pp]) echo $(($(SysInfo_megabytes "$1") / 1024 / 1024 / 1024));; [Tt]) echo $(($(SysInfo_megabytes "$1") / 1024 / 1024));; [Gg]) echo $(($(SysInfo_megabytes "$1") / 1024));; @@ -293,26 +293,26 @@ END } SysInfo_start() { - echo $OCF_RESKEY_clone > $OCF_RESKEY_pidfile + echo $OCF_RESKEY_clone > "$OCF_RESKEY_pidfile" SysInfoStats exit $OCF_SUCCESS } SysInfo_stop() { - rm $OCF_RESKEY_pidfile + rm "$OCF_RESKEY_pidfile" exit $OCF_SUCCESS } SysInfo_monitor() { - if [ -f $OCF_RESKEY_pidfile ]; then - clone=`cat $OCF_RESKEY_pidfile` + if [ -f "$OCF_RESKEY_pidfile" ]; then + clone=`cat "$OCF_RESKEY_pidfile"` fi - if [ x$clone = x ]; then - rm $OCF_RESKEY_pidfile + if [ "x$clone" = "x" ]; then + rm "$OCF_RESKEY_pidfile" exit $OCF_NOT_RUNNING - elif [ $clone = $OCF_RESKEY_clone ]; then + elif [ "$clone" = "$OCF_RESKEY_clone" ]; then SysInfoStats exit $OCF_SUCCESS @@ -335,7 +335,7 @@ fi : ${OCF_RESKEY_pidfile:="${HA_VARRUN%%/}/SysInfo-${OCF_RESOURCE_INSTANCE}"} : ${OCF_RESKEY_disk_unit:="G"} : ${OCF_RESKEY_clone:="0"} -if [ x != x${OCF_RESKEY_delay} ]; then +if [ "x" != "x${OCF_RESKEY_delay}" ]; then OCF_RESKEY_delay="-d ${OCF_RESKEY_delay}" else OCF_RESKEY_delay="-d 0" @@ -347,7 +347,7 @@ if [ -n "$OCF_RESKEY_min_disk_free" ]; then MIN_FREE=`SysInfo_hdd_units $OCF_RESKEY_min_disk_free` fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/SystemHealth b/extra/resources/SystemHealth index c76c5f330..1df5d55b0 100755 --- a/extra/resources/SystemHealth +++ b/extra/resources/SystemHealth @@ -13,9 +13,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -74,7 +74,7 @@ SystemHealth_check_tools() { return $OCF_ERR_INSTALLED fi - test -x $OCF_RESKEY_program + test -x "$OCF_RESKEY_program" RC=$? if [ $RC != 0 ]; then @@ -214,13 +214,13 @@ SystemHealth_check_tools RC=$? if [ $RC != 0 ]; then - case $__OCF_ACTION in + case "$__OCF_ACTION" in stop) exit $OCF_SUCCESS;; *) exit $RC;; esac fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in start) SystemHealth_start;; stop) SystemHealth_stop;; monitor) SystemHealth_monitor;; diff --git a/extra/resources/attribute b/extra/resources/attribute index fc814b75a..c58260d90 100755 --- a/extra/resources/attribute +++ b/extra/resources/attribute @@ -15,9 +15,9 @@ USAGE="Usage: $0 {start|stop|monitor|migrate_to|migrate_from|validate-all|meta-d Expects to have a fully populated OCF RA-compliant environment set." # Load OCF helper functions -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} # Ensure certain variables are set and not empty : ${HA_VARRUN:="/var/run"} @@ -25,7 +25,7 @@ Expects to have a fully populated OCF RA-compliant environment set." : ${OCF_RESOURCE_INSTANCE:="undef"} DEFAULT_STATE_FILE="${HA_VARRUN%%/}/opa-${OCF_RESOURCE_INSTANCE}.state" -if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then +if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then # Strip off any trailing clone marker (note + is not portable in sed) DEFAULT_STATE_FILE=$(echo "$DEFAULT_STATE_FILE" | sed s/:[0-9][0-9]*\.state/.state/) fi @@ -38,10 +38,10 @@ DEFAULT_INACTIVE_VALUE="0" : ${OCF_RESKEY_name:="$DEFAULT_ATTR_NAME"} # Values may be empty string -if [ -z ${OCF_RESKEY_active_value+x} ]; then +if [ -z "${OCF_RESKEY_active_value+x}" ]; then OCF_RESKEY_active_value="$DEFAULT_ACTIVE_VALUE" fi -if [ -z ${OCF_RESKEY_inactive_value+x} ]; then +if [ -z "${OCF_RESKEY_inactive_value+x}" ]; then OCF_RESKEY_inactive_value="$DEFAULT_INACTIVE_VALUE" fi diff --git a/extra/resources/controld b/extra/resources/controld index ca9a0f6a4..3ef12a519 100755 --- a/extra/resources/controld +++ b/extra/resources/controld @@ -16,15 +16,15 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### if [ -e "$OCF_ROOT/resource.d/heartbeat/controld" ]; then ocf_log info "Using heartbeat controld agent" - $OCF_ROOT/resource.d/heartbeat/controld $1 + "$OCF_ROOT/resource.d/heartbeat/controld" "$1" exit $? fi @@ -103,7 +103,7 @@ END check_uncontrolled_locks() { - CUL_TMP=$(ls $DLM_SYSFS_DIR 2>&1) + CUL_TMP=$(ls "$DLM_SYSFS_DIR" 2>&1) if [ $? -eq 0 ]; then if [ -n "$CUL_TMP" ]; then @@ -152,7 +152,7 @@ controld_start() { return $OCF_ERR_CONFIGURED fi - ${OCF_RESKEY_daemon} $OCF_RESKEY_args + "${OCF_RESKEY_daemon}" $OCF_RESKEY_args while true do @@ -185,7 +185,7 @@ controld_stop() { return $OCF_SUCCESS fi - killall -TERM ${OCF_RESKEY_daemon}; rc=$? + killall -TERM "${OCF_RESKEY_daemon}"; rc=$? if [ $rc != 0 ]; then return $OCF_ERR_GENERIC @@ -235,9 +235,9 @@ controld_monitor() { controld_validate() { check_binary killall - check_binary ${OCF_RESKEY_daemon} + check_binary "${OCF_RESKEY_daemon}" - case ${OCF_RESKEY_CRM_meta_globally_unique} in + case "${OCF_RESKEY_CRM_meta_globally_unique}" in yes|Yes|true|True|1) ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the globally_unique=false meta attribute" exit $OCF_ERR_CONFIGURED @@ -249,7 +249,7 @@ controld_validate() { return $OCF_SUCCESS } -: ${OCF_RESKEY_sctp:=false} +: ${OCF_RESKEY_sctp:="false"} : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} case "$OCF_RESOURCE_INSTANCE" in @@ -266,7 +266,7 @@ case "$OCF_RESOURCE_INSTANCE" in : ${OCF_RESKEY_daemon:=dlm_controld} esac -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/ifspeed.in b/extra/resources/ifspeed.in index 63a1291cd..4d8f93e1a 100755 --- a/extra/resources/ifspeed.in +++ b/extra/resources/ifspeed.in @@ -33,7 +33,7 @@ # # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} # If these aren't available, we can still show help, # which is all that is needed to build the man pages. @@ -184,14 +184,14 @@ start() { } stop() { - ha_pseudo_resource ${ha_pseudo_resource_name} stop - attrd_updater -D -n ${OCF_RESKEY_name} -d ${OCF_RESKEY_dampen} ${attrd_options} + ha_pseudo_resource "${ha_pseudo_resource_name}" stop + attrd_updater -D -n "${OCF_RESKEY_name}" -d "${OCF_RESKEY_dampen}" ${attrd_options} return $OCF_SUCCESS } monitor() { local ret - ha_pseudo_resource ${ha_pseudo_resource_name} monitor + ha_pseudo_resource "${ha_pseudo_resource_name}" monitor ret=$? if [ ${ret} -eq $OCF_SUCCESS ] ; then update @@ -204,7 +204,7 @@ get_nic_name_by_ip(){ # $FINDIF takes its parameters from the environment. # Its output is as follows: # [NIC_NAME] netmask [NETMASK] broadcast [BROADCAST} - NICINFO=$( ${FINDIF} ) + NICINFO=$( "${FINDIF}" ) rc=$? if [ $rc -eq 0 ];then # Get NIC_NAME part of findif function output. @@ -235,20 +235,20 @@ validate() { } iface_get_speed() { - local iface=$1 + local iface="$1" local operstate local carrier local speed if [ ! -e "/sys/class/net/${iface}" ] ; then echo "0" - elif iface_is_bridge ${iface} ; then # bridges do not have operstate + elif iface_is_bridge "${iface}" ; then # bridges do not have operstate read carrier < "/sys/class/net/${iface}/carrier" if [ "${carrier}" != "1" ] ; then echo "0" else - bridge_get_speed ${iface} + bridge_get_speed "${iface}" fi else read operstate < "/sys/class/net/${iface}/operstate" @@ -256,54 +256,54 @@ iface_get_speed() { if [ "${operstate}" != "up" ] || [ "${carrier}" != "1" ] ; then echo "0" - elif iface_is_bond ${iface} ; then - bond_get_speed ${iface} - elif iface_is_vlan ${iface} ; then + elif iface_is_bond "${iface}" ; then + bond_get_speed "${iface}" + elif iface_is_vlan "${iface}" ; then iface_get_speed "$(vlan_get_phy "${iface}")" elif iface_is_hfi1 "${iface}" ; then hfi1_get_speed "${iface}" else read speed < "/sys/class/net/${iface}/speed" - echo ${speed} + echo "${speed}" fi fi } iface_is_vlan() { - local iface=$1 + local iface="$1" [ -e "/proc/net/vlan/${iface}" ] && return 0 || return 1 } iface_is_bridge() { - local iface=$1 + local iface="$1" [ -e "/sys/class/net/${iface}/bridge" ] && return 0 || return 1 } iface_is_bond() { - local iface=$1 + local iface="$1" [ -e "/sys/class/net/${iface}/bonding" ] && return 0 || return 1 } iface_is_hfi1() { - local iface=$1 - driver=$(readlink /sys/class/net/${iface}/device/driver) - [[ $(basename ${driver}) =~ "hfi1" ]] && return 0 || return 1 + local iface="$1" + driver=$(readlink "/sys/class/net/${iface}/device/driver") + [[ $(basename "${driver}") =~ "hfi1" ]] && return 0 || return 1 } vlan_get_phy() { - local iface=$1 + local iface="$1" sed -ne "s/^${iface} .*| *//p" < /proc/net/vlan/config } bridge_is_stp_enabled() { - local iface=$1 + local iface="$1" local stp read stp < "/sys/class/net/${iface}/bridge/stp_state" [ "${stp}" = "1" ] && return 0 || return 1 } bridge_get_root_ports() { - local bridge=$1 + local bridge="$1" local root_id local root_ports="" local bridge_id @@ -334,7 +334,7 @@ bridge_get_root_ports() { #define BR_STATE_BLOCKING 4 bridge_get_active_ports() { - local bridge=$1 + local bridge="$1" shift 1 local ports="$*" local active_ports="" @@ -342,11 +342,11 @@ bridge_get_active_ports() { local stp_state local warn=0 - bridge_is_stp_enabled ${bridge} + bridge_is_stp_enabled "${bridge}" stp_state=$? if [ -z "${ports}" ] || [ "${ports}" = "detect" ] ; then - bridge_get_root_ports ${bridge} ports + bridge_get_root_ports "${bridge}" ports fi for port in $ports ; do @@ -369,17 +369,17 @@ bridge_get_active_ports() { } bridge_get_speed() { - local iface=$1 + local iface="$1" local aggregate_speed=0 - if ! iface_is_bridge ${iface} ; then + if ! iface_is_bridge "${iface}" ; then echo 0 return fi BGS_PORTS=$( bridge_get_active_ports "${iface}" "${OCF_RESKEY_bridge_ports}" ) for port in ${BGS_PORTS} ; do - : $(( aggregate_speed += $( iface_get_speed ${port} ) )) + : $(( aggregate_speed += $( iface_get_speed "${port}" ) )) done if [ -n "$2" ] ; then # Record value in specified var. This expects we were called not in a sub-shell. eval "$2=\${aggregate_speed}" @@ -389,7 +389,7 @@ bridge_get_speed() { } hfi1_get_speed() { - local iface=$1 + local iface="$1" local hfi1_speed local hfi1_value local hfi1_desc @@ -399,15 +399,15 @@ hfi1_get_speed() { # method to get the speed. Example output: # [root@es-host0 ~]# cat /sys/class/net/ib0/device/infiniband/*/ports/*/rate # 100 Gb/sec (4X EDR) - read hfi1_speed hfi1_value hfi1_desc < /sys/class/net/${iface}/device/infiniband/*/ports/*/rate - ocf_is_true ${OCF_RESKEY_debug} && ocf_log debug "Detected speed $hfi1_speed $hfi1_value $hfi1_desc" + read hfi1_speed hfi1_value hfi1_desc < "/sys/class/net/${iface}/device/infiniband"/*/ports/*/rate + ocf_is_true "${OCF_RESKEY_debug}" && ocf_log debug "Detected speed $hfi1_speed $hfi1_value $hfi1_desc" # hfi1_value always in Gb/sec, so we need to convert hfi1_speed in Mb/sec echo $(( hfi1_speed * 1000 )) } bond_get_slaves() { - local iface=$1 + local iface="$1" local slaves read slaves < "/sys/class/net/${iface}/bonding/slaves" if [ -n "$2" ] ; then # Record value in specified var. This expects we were called not in a sub-shell. @@ -418,7 +418,7 @@ bond_get_slaves() { } bond_get_active_iface() { - local iface=$1 + local iface="$1" local active read active < "/sys/class/net/${iface}/bonding/active_slave" if [ -n "$2" ] ; then # Record value in specified var. This expects we were called not in a sub-shell. @@ -429,10 +429,10 @@ bond_get_active_iface() { } bond_is_balancing() { - local iface=$1 + local iface="$1" read mode mode_index < "/sys/class/net/${iface}/bonding/mode" - ocf_is_true ${OCF_RESKEY_debug} && ocf_log debug "Detected balancing $mode $mode_index" - case ${mode} in + ocf_is_true "${OCF_RESKEY_debug}" && ocf_log debug "Detected balancing $mode $mode_index" + case "${mode}" in "balance-rr"|"balance-xor"|"802.3ad"|"balance-tlb"|"balance-alb") return 0 ;; @@ -443,27 +443,27 @@ bond_is_balancing() { } bond_get_speed() { - local iface=$1 + local iface="$1" local aggregate_speed=0 local active_iface local bond_slaves - if ! iface_is_bond ${iface} ; then + if ! iface_is_bond "${iface}" ; then echo 0 return fi - bond_get_slaves ${iface} bond_slaves + bond_get_slaves "${iface}" bond_slaves - if bond_is_balancing ${iface} ; then + if bond_is_balancing "${iface}" ; then for slave in ${bond_slaves} ; do - : $(( aggregate_speed += $( iface_get_speed ${slave} ) )) + : $(( aggregate_speed += $( iface_get_speed "${slave}" ) )) done # Bonding is unable to get speed*n : $(( aggregate_speed = aggregate_speed * 8 / 10 )) else - bond_get_active_iface ${iface} active_iface - aggregate_speed=$( iface_get_speed $active_iface ) + bond_get_active_iface "${iface}" "active_iface" + aggregate_speed=$( iface_get_speed "$active_iface" ) fi if [ -n "$2" ] ; then # Record value in specified var. This expects we were called not in a sub-shell. eval "$2=\${aggregate_speed}" @@ -474,7 +474,7 @@ bond_get_speed() { update() { local speed; - local nic=${OCF_RESKEY_iface}; + local nic="${OCF_RESKEY_iface}"; if [ -z "${OCF_RESKEY_iface}" ]; then nic=$( get_nic_name_by_ip ) if [ -z "${nic}" ];then @@ -482,18 +482,18 @@ update() { exit $OCF_ERR_GENERIC fi fi - speed=$( iface_get_speed ${nic} ) + speed=$( iface_get_speed "${nic}" ) : $(( score = speed * ${OCF_RESKEY_weight_base} / 1000 )) if [ "$__OCF_ACTION" = "start" ] ; then - attrd_updater -n ${OCF_RESKEY_name} -B ${score} -d ${OCF_RESKEY_dampen} ${attrd_options} + attrd_updater -n "${OCF_RESKEY_name}" -B "${score}" -d "${OCF_RESKEY_dampen}" ${attrd_options} else - attrd_updater -n ${OCF_RESKEY_name} -v ${score} -d ${OCF_RESKEY_dampen} ${attrd_options} + attrd_updater -n "${OCF_RESKEY_name}" -v "${score}" -d "${OCF_RESKEY_dampen}" ${attrd_options} fi rc=$? case ${rc} in 0) - ocf_is_true ${OCF_RESKEY_debug} && ocf_log debug "Updated ${OCF_RESKEY_name} = ${score}" + ocf_is_true "${OCF_RESKEY_debug}" && ocf_log debug "Updated ${OCF_RESKEY_name} = ${score}" ;; *) ocf_log warn "Could not update ${OCF_RESKEY_name} = ${score}: rc=${rc}" @@ -521,13 +521,13 @@ fi : ${ha_pseudo_resource_name:="ifspeed-${OCF_RESOURCE_INSTANCE}"} attrd_options='-q' -if ocf_is_true ${OCF_RESKEY_debug} ; then +if ocf_is_true "${OCF_RESKEY_debug}" ; then attrd_options='' fi validate || exit $? -case $__OCF_ACTION in +case "$__OCF_ACTION" in start) start ;; diff --git a/extra/resources/o2cb.in b/extra/resources/o2cb.in index 1cc7fb3bb..2f54b825a 100755 --- a/extra/resources/o2cb.in +++ b/extra/resources/o2cb.in @@ -13,9 +13,9 @@ ####################################################################### -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} : ${OCF_RESKEY_stack:="pcmk"} : ${OCF_RESKEY_sysfs:="/sys/fs"} @@ -54,7 +54,7 @@ driver_filesystem() { # check_filesystem() { - if [ "$#" != "2" -o -z "$1" -o -z "$2" ] + if [ $# != 2 -o -z "$1" -o -z "$2" ] then ocf_log err "check_filesystem(): Missing arguments" exit 4 @@ -76,7 +76,7 @@ check_filesystem() # unload_filesystem() { - if [ "$#" != "1" -o -z "$1" ] + if [ $# != 1 -o -z "$1" ] then ocf_log err "unload_filesystem(): Missing an argument" return 1 @@ -106,7 +106,7 @@ unload_filesystem() esac modprobe -rs "$FSNAME" - if [ "$?" != 0 ]; then + if [ $? != 0 ]; then ocf_log err "Unable to unload module: $FSNAME" return 1 fi @@ -177,7 +177,7 @@ kill_daemon() # unload_module() { - if [ "$#" -lt "1" -o -z "$1" ] + if [ $# -lt 1 -o -z "$1" ] then ocf_log err "unload_module(): Requires an argument" return 1 @@ -203,7 +203,7 @@ unload_module() esac modprobe -rs "$MODNAME" - if [ "$?" != 0 ]; then + if [ $? != 0 ]; then ocf_log err "Unable to unload module \"$MODNAME\"" return 1 fi @@ -258,7 +258,7 @@ o2cb_start() { driver_filesystem ocfs2; rc=$? if [ $rc != 0 ]; then modprobe -s ocfs2 - if [ "$?" != 0 ]; then + if [ $? != 0 ]; then ocf_log err "Unable to load ocfs2 module" return $OCF_ERR_INSTALLED fi @@ -356,7 +356,7 @@ o2cb_usage() { o2cb_validate() { check_binary ${DAEMON} - case ${OCF_RESKEY_CRM_meta_globally_unique} in + case "${OCF_RESKEY_CRM_meta_globally_unique}" in yes|Yes|true|True|1) ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the globally_unique=false meta attribute" exit $OCF_ERR_CONFIGURED @@ -422,7 +422,7 @@ Number of seconds to allow the control daemon to come up END } -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/ping b/extra/resources/ping index 6d64d4db3..f9e5d9be5 100755 --- a/extra/resources/ping +++ b/extra/resources/ping @@ -13,9 +13,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -137,9 +137,9 @@ END ####################################################################### ping_conditional_log() { - level=$1; shift - if [ ${OCF_RESKEY_debug} = "true" ]; then - ocf_log $level "$*" + level="$1"; shift + if [ "${OCF_RESKEY_debug}" = "true" ]; then + ocf_log "$level" "$*" fi } @@ -156,21 +156,21 @@ ping_start() { if [ $? = $OCF_SUCCESS ]; then return $OCF_SUCCESS fi - touch ${OCF_RESKEY_pidfile} + touch "${OCF_RESKEY_pidfile}" ping_update } ping_stop() { - rm -f ${OCF_RESKEY_pidfile} + rm -f "${OCF_RESKEY_pidfile}" - attrd_updater -D -n $OCF_RESKEY_name -d $OCF_RESKEY_dampen $attrd_options + attrd_updater -D -n "$OCF_RESKEY_name" -d "$OCF_RESKEY_dampen" $attrd_options return $OCF_SUCCESS } ping_monitor() { - if [ -f ${OCF_RESKEY_pidfile} ]; then + if [ -f "${OCF_RESKEY_pidfile}" ]; then ping_update if [ $? -eq 0 ]; then return $OCF_SUCCESS @@ -191,7 +191,7 @@ ping_validate() { rm "$state_dir/$$" # Pidfile better be an absolute path - case $OCF_RESKEY_pidfile in + case "$OCF_RESKEY_pidfile" in /*) ;; *) ocf_log warn "You should use an absolute path for pidfile not: $OCF_RESKEY_pidfile" ;; esac @@ -261,7 +261,7 @@ ping_check() { *) ocf_log err "Unknown host type: `uname`"; exit $OCF_ERR_INSTALLED;; esac - case $host in + case "$host" in *:*) p_exe=ping6 esac @@ -288,9 +288,9 @@ ping_update() { score=`expr $active \* $OCF_RESKEY_multiplier` if [ "$__OCF_ACTION" = "start" ] ; then - attrd_updater -n $OCF_RESKEY_name -B $score -d $OCF_RESKEY_dampen $attrd_options + attrd_updater -n "$OCF_RESKEY_name" -B "$score" -d "$OCF_RESKEY_dampen" $attrd_options else - attrd_updater -n $OCF_RESKEY_name -v $score -d $OCF_RESKEY_dampen $attrd_options + attrd_updater -n "$OCF_RESKEY_name" -v "$score" -d "$OCF_RESKEY_dampen" $attrd_options fi rc=$? case $rc in @@ -330,7 +330,7 @@ hosts_family() { # For fping allow only same IP versions or hostnames family=0 for host in $OCF_RESKEY_host_list; do - host_family $host + host_family "$host" f=$? if [ $family -ne 0 ] && [ $f -ne 0 ] && [ $f -ne $family ] ; then family=99 @@ -353,14 +353,14 @@ hosts_family() { : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} integer=`echo ${OCF_RESKEY_timeout} | egrep -o '[0-9]*'` -case ${OCF_RESKEY_timeout} in +case "${OCF_RESKEY_timeout}" in *[0-9]ms|*[0-9]msec) OCF_RESKEY_timeout=`expr $integer / 1000`;; *[0-9]m|*[0-9]min) OCF_RESKEY_timeout=`expr $integer \* 60`;; *[0-9]h|*[0-9]hr) OCF_RESKEY_timeout=`expr $integer \* 60 \* 60`;; *) OCF_RESKEY_timeout=$integer;; esac -if [ -z ${OCF_RESKEY_timeout} ]; then +if [ -z "${OCF_RESKEY_timeout}" ]; then if [ x"$OCF_RESKEY_host_list" != x ]; then host_count=`echo $OCF_RESKEY_host_list | awk '{print NF}'` OCF_RESKEY_timeout=`expr $OCF_RESKEY_CRM_meta_timeout / $host_count / $OCF_RESKEY_attempts` @@ -377,7 +377,7 @@ elif [ ${OCF_RESKEY_timeout} -gt 1000 ]; then OCF_RESKEY_timeout=300 fi -if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then +if [ "${OCF_RESKEY_CRM_meta_globally_unique}" = "false" ]; then : ${OCF_RESKEY_pidfile:="${HA_VARRUN%%/}/ping-${OCF_RESKEY_name}"} else : ${OCF_RESKEY_pidfile:="${HA_VARRUN%%/}/ping-${OCF_RESOURCE_INSTANCE}"} @@ -394,11 +394,11 @@ case "${OCF_RESKEY_debug}" in esac attrd_options='-q' -if [ ${OCF_RESKEY_debug} = "true" ]; then +if [ "${OCF_RESKEY_debug}" = "true" ]; then attrd_options='' fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;; diff --git a/extra/resources/pingd b/extra/resources/pingd index cec8ccfa8..2cd7b629c 100755 --- a/extra/resources/pingd +++ b/extra/resources/pingd @@ -17,9 +17,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} : ${OCF_RESKEY_name:="pingd"} : ${OCF_RESKEY_interval:="1"} @@ -29,7 +29,7 @@ upgrade1="This agent (ocf:pacemaker:pingd) has been replaced by the more reliabl upgrade2="Attempting automated conversion, run 'crm ra info ocf:pacemaker:ping' for all configuration options" upgrade3="You will need to remove the existing resource and replace it with one that uses 'ocf:pacemaker:ping' directly" -case $__OCF_ACTION in +case "$__OCF_ACTION" in start|monitor) if [ "x" != "x$OCF_RESKEY_host_list" ]; then ocf_log err "$upgrade1" @@ -39,9 +39,9 @@ case $__OCF_ACTION in exit $OCF_ERR_ARGS fi - recurring=`crm configure show $OCF_RESOURCE_INSTANCE | grep "op monitor.*interval=\"[1-9]" | sed s/.*interval=// | awk -F\" '{print $2}' | sed s/.*interval=// | awk -F\" '{print $2}' | sort | head -n 1` + recurring=`crm configure show "$OCF_RESOURCE_INSTANCE" | grep "op monitor.*interval=\"[1-9]" | sed s/.*interval=// | awk -F\" '{print $2}' | sed s/.*interval=// | awk -F\" '{print $2}' | sort | head -n 1` - if [ -z $recurring ]; then + if [ -z "$recurring" ]; then ocf_log err "$upgrade1" ocf_log err "$upgrade2" ocf_log err "Automatic conversion to ocf:pacemaker:ping failed: no monitor operation configured" @@ -183,7 +183,7 @@ END ;; esac -${OCF_ROOT}/resource.d/pacemaker/ping $1 +"${OCF_ROOT}/resource.d/pacemaker/ping" "$1" exit $? # vim: set filetype=sh expandtab tabstop=4 softtabstop=4 shiftwidth=4 textwidth=80: diff --git a/extra/resources/remote b/extra/resources/remote index 0a2d09e15..e571d820e 100755 --- a/extra/resources/remote +++ b/extra/resources/remote @@ -19,9 +19,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS:=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION:=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor