diff options
Diffstat (limited to 'extras')
-rw-r--r-- | extras/ganesha/ocf/ganesha_grace | 25 | ||||
-rw-r--r-- | extras/ganesha/ocf/ganesha_mon | 33 | ||||
-rw-r--r-- | extras/ganesha/scripts/ganesha-ha.sh | 5 |
3 files changed, 38 insertions, 25 deletions
diff --git a/extras/ganesha/ocf/ganesha_grace b/extras/ganesha/ocf/ganesha_grace index 21b95ddb6d7..84202df9aa2 100644 --- a/extras/ganesha/ocf/ganesha_grace +++ b/extras/ganesha/ocf/ganesha_grace @@ -94,15 +94,20 @@ esac ganesha_grace_start() { local rc=${OCF_ERR_GENERIC} - local short_host=$(hostname -s) - local long_host=$(hostname) + local host=$(hostname -s) ocf_log debug "ganesha_grace_start()" - attr=$(crm_attribute --query --node=${short_host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) + # give ganesha_mon RA a chance to set the crm_attr first + # I mislike the sleep, but it's not clear that looping + # with a small sleep is necessarily better + # start has a 40sec timeout, so a 5sec sleep here is okay + sleep 5 + attr=$(crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) if [ $? -ne 0 ]; then - attr=$(crm_attribute --query --node=${long_host} --name=${OCF_RESKEY_grace_active} 2> /dev/null ) + host=$(hostname) + attr=$(crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} 2> /dev/null ) if [ $? -ne 0 ]; then - ocf_log info "crm_attribute --query --node=${short_host} --name=${OCF_RESKEY_grace_active} failed" + ocf_log info "grace start: crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} failed" fi fi @@ -160,16 +165,16 @@ ganesha_grace_notify() ganesha_grace_monitor() { local rc=${OCF_ERR_GENERIC} - local short_host=$(hostname -s) - local long_host=$(hostname) + local host=$(hostname -s) ocf_log debug "monitor" - attr=$(crm_attribute --query --node=${short_host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) + attr=$(crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) if [ $? -ne 0 ]; then - attr=$(crm_attribute --query --node=${long_host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) + host=$(hostname) + attr=$(crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} 2> /dev/null) if [ $? -ne 0 ]; then - ocf_log info "crm_attribute --query --node=${short_host} --name=${OCF_RESKEY_grace_active} failed" + ocf_log info "crm_attribute --query --node=${host} --name=${OCF_RESKEY_grace_active} failed" fi fi diff --git a/extras/ganesha/ocf/ganesha_mon b/extras/ganesha/ocf/ganesha_mon index 974eb86a07a..7d0eb6b9cb8 100644 --- a/extras/ganesha/ocf/ganesha_mon +++ b/extras/ganesha/ocf/ganesha_mon @@ -124,8 +124,7 @@ ganesha_mon_stop() ganesha_mon_monitor() { - local short_host=$(hostname -s) - local long_host=$(hostname) + local host=$(hostname -s) local pid_file="/var/run/ganesha.nfsd.pid" # RHEL6 /etc/init.d/nfs-ganesha adds -p /var/run/ganesha.nfsd.pid @@ -154,13 +153,15 @@ ganesha_mon_monitor() # track grace-active crm_attr (attr != crm_attr) # we can't just use the attr as there's no way to query # its value in RHEL6 pacemaker - crm_attribute --node=${short_host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 2> /dev/null - if [ $? -ne 0 ]; then - crm_attribute --node=${long_host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 2> /dev/null - if [ $? -ne 0 ]; then - ocf_log info "warning: crm_attribute --node=${short_host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 failed" - fi - fi + + crm_attribute --node=${host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 2> /dev/null + if [ $? -ne 0 ]; then + host=$(hostname) + crm_attribute --node=${host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 2> /dev/null + if [ $? -ne 0 ]; then + ocf_log info "mon monitor warning: crm_attribute --node=${host} --lifetime=forever --name=${OCF_RESKEY_grace_active} --update=1 failed" + fi + fi return ${OCF_SUCCESS} fi @@ -182,13 +183,15 @@ ganesha_mon_monitor() ocf_log info "warning: attrd_updater -D -n ${OCF_RESKEY_grace_active} failed" fi - crm_attribute --node=${short_host} --name=${OCF_RESKEY_grace_active} --update=0 2> /dev/null + host=$(hostname -s) + crm_attribute --node=${host} --name=${OCF_RESKEY_grace_active} --update=0 2> /dev/null if [ $? -ne 0 ]; then - crm_attribute --node=${long_host} --name=${OCF_RESKEY_grace_active} --update=0 2> /dev/null - if [ $? -ne 0 ]; then - ocf_log info "warning: crm_attribute --node=${short_host} --name=${OCF_RESKEY_grace_active} --update=0 failed" - fi - fi + host=$(hostname) + crm_attribute --node=${host} --name=${OCF_RESKEY_grace_active} --update=0 2> /dev/null + if [ $? -ne 0 ]; then + ocf_log info "mon monitor warning: crm_attribute --node=${host} --name=${OCF_RESKEY_grace_active} --update=0 failed" + fi + fi sleep ${OCF_RESKEY_grace_delay} diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh index f0796d2e043..f43dbf4b296 100644 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -511,6 +511,11 @@ setup_create_resources() logger "warning: pcs resource create nfs-mon ocf:heartbeat:ganesha_mon --clone failed" fi + # see comment in (/usr/lib/ocf/resource.d/heartbeat/ganesha_grace + # start method. Allow time for ganesha_mon to start and set the + # ganesha-active crm_attribute + sleep 5 + pcs resource create nfs-grace ocf:heartbeat:ganesha_grace --clone meta notify=true if [ $? -ne 0 ]; then logger "warning: pcs resource create nfs-grace ocf:heartbeat:ganesha_grace --clone failed" |