#!/bin/bash # # Copyright (c) 2014 Anand Subramanian anands@redhat.com # Copyright (c) 2015 Red Hat Inc. # All Rights Reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Further, this software is distributed without any warranty that it is # free of the rightful claim of any third person regarding infringement # or the like. Any license provided herein, whether implied or # otherwise, applies only to this software file. Patent licenses, if # any, provided herein do not apply to combinations of this program with # other software, or any other product whatsoever. # # You should have received a copy of the GNU General Public License # along with this program; if not, write the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. # # # Initialization: : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat} . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs if [ -n "$OCF_DEBUG_LIBRARY" ]; then . $OCF_DEBUG_LIBRARY else : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat} . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs fi ganesha_meta_data() { cat < 1.0 This Linux-specific resource agent acts as a dummy resource agent for nfs-ganesha. Manages the user-space nfs-ganesha NFS server END return $OCF_SUCCESS } ganesha_mon_usage() { echo "ganesha.nfsd USAGE" } # Make sure meta-data and usage always succeed case $__OCF_ACTION in meta-data) ganesha_meta_data exit $OCF_SUCCESS ;; usage|help) ganesha_usage exit $OCF_SUCCESS ;; *) ;; esac ganesha_mon_start() { return $OCF_SUCCESS } ganesha_mon_stop() { return $OCF_SUCCESS } ganesha_mon_monitor() { local short_host=$(hostname -s) if [ -e /var/run/ganesha.nfsd.pid -a \ -d /proc/$(cat /var/run/ganesha.nfsd.pid) ]; then # logger "note: ganesha_mon_monitor() pcs resource delete ${short_host}-dead_ip-1" pcs resource delete ${short_host}-dead_ip-1 # if [ $? -ne 0 ]; then # logger "warning: pcs resource delete ${short_host}-dead_ip-1" # fi sleep 1 attrd_updater -n ganesha-active -v 1 if [ $? -ne 0 ]; then logger "warning: attrd_updater -n ganesha-active -v 1 failed" fi else # logger "note: ganesha_mon_montor(), pcs resource create ${short_host}-dead_ip-1 ocf:heartbeat:Dummy" pcs resource create ${short_host}-dead_ip-1 ocf:heartbeat:Dummy if [ $? -ne 0 ]; then logger "warning: pcs resource create ${short_host}-dead_ip-1 ocf:heartbeat:Dummy failed" fi sleep 1 attrd_updater -D -n ganesha-active if [ $? -ne 0 ]; then logger "warning: attrd_updater -D -n ganesha-active failed" fi fi return $OCF_SUCCESS } ganesha_mon_validate() { return $OCF_SUCCESS } ganesha_mon_validate # logger "ganesha_mon ${OCF_RESOURCE_INSTANCE} $__OCF_ACTION" # Translate each action into the appropriate function call case $__OCF_ACTION in start) ganesha_mon_start ;; stop) ganesha_mon_stop ;; status|monitor) ganesha_mon_monitor ;; *) ganesha_mon_usage exit $OCF_ERR_UNIMPLEMENTED ;; esac rc=$? # The resource agent may optionally log a debug message ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION returned $rc" exit $rc