On Mon, Jul 15, 2013 at 01:40:47PM +0200, Dejan Muhamedagic wrote: > Hi Sami, > > > On Fri, Jun 28, 2013 at 03:40:02PM +0300, Sami Kähkönen wrote: > > Hi, > > > > Here is a small patch to enable multiple IP support for eDir88 RA. To > > summarize, eDirectory supports multiple IP numbers in config file separated > > by comma. > > Example line in nds.conf: > > n4u.server.interfaces=168.0.0.1@524,10.0.0.1@524 > > > > Current resource agent is unable to cope with such configurations. > > > > This patch creates an array of IP:port configurations and checks them > > individually. Tested in SLES 11 SP2 HA environment with one and multiple > > IP's. All comments and additional testing are welcome. > > > > Patch also in github: https://github.com/skahkonen/resource-agents > > Sorry for the delay and many thanks for the patch. It looks good > to me. If you can, it would be good to make a pull request at > github.
I did that myself and put together the indentation patch. See https://github.com/ClusterLabs/resource-agents/pull/283 Cheers, Dejan > Cheers, > > Dejan > > > > Regards, > > Sami Kähkönen > > > > -- > > @@ -238,14 +238,34 @@ eDir_status() { ** ocf_log err "Cannot > > retrieve interfaces from $NDSCONF. eDirectory may not be correctly > > configured." > > ** exit $OCF_ERR_GENERIC ** fi **- > > NDSD_SOCKS=$(netstat -ntlp | grep -ce "$IFACE.*ndsd") > > ** ** - if [ "$NDSD_SOCKS" -eq 1 ] ; then **+ # In case of > > multiple IP's split into an array > > ** + # and check all of them **+ IFS=', ' read -a IFACE2 <<< > > "$IFACE" > > ** + ocf_log debug "Found ${#IFACE2[@]} interfaces from $NDSCONF." **+ > > ** + counter=${#IFACE2[@]} ** + ** + for IFACE in ${IFACE2[@]} * > > * + do ** + ocf_log debug "Checking ndsd instance for $IFACE" > > ** + NDSD_SOCKS=$(netstat -ntlp | grep -ce "$IFACE.*ndsd") ** + * > > * + if [ "$NDSD_SOCKS" -eq 1 ] ; then ** + > > let counter=counter-1 ** + > > ocf_log debug "Found ndsd instance for $IFACE" ** + > > elif [ "$NDSD_SOCKS" -gt 1 ] ; then ** + > > ocf_log err "More than 1 ndsd listening socket matched. Likely > > misconfiguration of eDirectory." > > ** + exit $OCF_ERR_GENERIC ** + fi ** + done **+ > > ** + if [ $counter -eq 0 ] ; then ** # Correct ndsd > > instance is definitely running > > ** - # Further checks are superfluous (I think...) **- > > return 0 > > ** - elif [ "$NDSD_SOCKS" -gt 1 ] ; then **- ocf_log err > > "More than 1 ndsd listening socket matched. Likely misconfiguration of > > eDirectory." > > ** + ocf_log debug "All ndsd instances found." **+ > > return 0; > > ** + elif [ $counter -lt ${#IFACE2[@]} ]; then **+ ocf_log > > err "Only some ndsd listening sockets matched, something is very > > wrong." > > ** exit $OCF_ERR_GENERIC ** fi ** @@ -270,7 > > +290,7 @@ eDir_status() { > > ** exit $OCF_ERR_GENERIC ** fi ** ** - > > # Instance is not running, but no other error detected. ** + > > ocf_log debug "ndsd instance is not running, but no other error detected." > > ** return 1 ** } > > > _______________________________________________________ > > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org > > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev > > Home Page: http://linux-ha.org/ > > _______________________________________________________ > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev > Home Page: http://linux-ha.org/ _______________________________________________________ Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/