The branch, 1.0.112 has been updated via 5ba7028ce62b747db84dfccea0c5168e5de16228 (commit) via aec9aa904d01e6c7f2b62ee379e007e894cf220b (commit) via 2765400d4b01d68316b105e84e9436a0b57cb072 (commit) from 3f403ff374915a831b02d2f072bc61cf1ba9e77a (commit)
http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=1.0.112 - Log ----------------------------------------------------------------- commit 5ba7028ce62b747db84dfccea0c5168e5de16228 Author: Ronnie Sahlberg <ronniesahlb...@gmail.com> Date: Thu Apr 22 14:16:39 2010 +1000 New version 1.0.112-16 commit aec9aa904d01e6c7f2b62ee379e007e894cf220b Author: Ronnie Sahlberg <ronniesahlb...@gmail.com> Date: Thu Apr 22 14:02:11 2010 +1000 add an example script that can be called from crontab to cleanup and release public ip addresses if ctdbd is no longer running commit 2765400d4b01d68316b105e84e9436a0b57cb072 Author: Ronnie Sahlberg <ronniesahlb...@gmail.com> Date: Thu Apr 22 13:36:13 2010 +1000 add a missing || to make the 10.interface script not fail with a syntax error ----------------------------------------------------------------------- Summary of changes: Makefile.in | 1 + config/ctdb-crash-cleanup.sh | 35 +++++++++++++++++++++++++++++++++++ config/events.d/10.interface | 2 +- packaging/RPM/ctdb.spec.in | 7 ++++++- 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100755 config/ctdb-crash-cleanup.sh Changeset truncated at 500 lines: diff --git a/Makefile.in b/Makefile.in index 0684df3..054c1e0 100755 --- a/Makefile.in +++ b/Makefile.in @@ -233,6 +233,7 @@ install: all if [ -f doc/ctdbd.1 ];then ${INSTALLCMD} -m 644 doc/ctdbd.1 $(DESTDIR)$(mandir)/man1; fi if [ -f doc/onnode.1 ];then ${INSTALLCMD} -m 644 doc/onnode.1 $(DESTDIR)$(mandir)/man1; fi if [ ! -f $(DESTDIR)$(etcdir)/ctdb/notify.sh ];then ${INSTALLCMD} -m 755 config/notify.sh $(DESTDIR)$(etcdir)/ctdb; fi + if [ ! -f $(DESTDIR)$(etcdir)/ctdb/ctdb-crash-cleanup.sh ];then ${INSTALLCMD} -m 755 config/ctdb-crash-cleanup.sh $(DESTDIR)$(etcdir)/ctdb; fi test: all tests/run_tests.sh diff --git a/config/ctdb-crash-cleanup.sh b/config/ctdb-crash-cleanup.sh new file mode 100755 index 0000000..ca6a838 --- /dev/null +++ b/config/ctdb-crash-cleanup.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# +# This script can be called from a cronjob to automatically drop/release +# all public ip addresses if CTDBD has crashed or stopped running. +# + +[ -z "$CTDB_BASE" ] && { + CTDB_BASE=/etc/ctdb +} + +[ -z "$CTDB_PUBLIC_ADDRESSES" ] && { + CTDB_PUBLIC_ADDRESSES=$CTDB_BASE/public_addresses +} + +[ ! -f "$CTDB_PUBLIC_ADDRESSES" ] && { + echo "No public addresses file found. Cant cleanup." + exit 1 +} + +# if ctdb is running, just return +ctdb status 2>/dev/null && { + exit 0 +} + +cat "$CTDB_PUBLIC_ADDRESSES" | cut -d/ -f1 | while read _IP; do + _IP_HELD=`/sbin/ip addr show | grep "inet $_IP/"` + [ -z "$_IP_HELD" ] || { + _IFACE=`echo $_IP_HELD | sed -e "s/.*\s//"` + _NM=`echo $_IP_HELD | sed -e "s/.*$_IP\///" -e "s/\s.*//"` + logger "Removing public address $_IP/$_NM from device $_IFACE" + /sbin/ip addr del $_IP/$_NM dev $_IFACE + } +done + + diff --git a/config/events.d/10.interface b/config/events.d/10.interface index 8cbe222..ab09b0d 100755 --- a/config/events.d/10.interface +++ b/config/events.d/10.interface @@ -193,7 +193,7 @@ case "$1" in # we dont know how to test ib links ;; *) - [ -z "$IFACE" ] { + [ -z "$IFACE" ] || { [ "$(basename $(readlink /sys/class/net/$IFACE/device/driver))" = virtio_net ] || ethtool $IFACE | grep -q 'Link detected: yes' || { # On some systems, this is not successful when a diff --git a/packaging/RPM/ctdb.spec.in b/packaging/RPM/ctdb.spec.in index 15d7a7b..04c8a07 100644 --- a/packaging/RPM/ctdb.spec.in +++ b/packaging/RPM/ctdb.spec.in @@ -5,7 +5,7 @@ Vendor: Samba Team Packager: Samba Team <sa...@samba.org> Name: ctdb Version: 1.0.112 -Release: 15 +Release: 16 Epoch: 0 License: GNU GPL version 3 Group: System Environment/Daemons @@ -87,6 +87,7 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %{_sysconfdir}/sysconfig/ctdb %config(noreplace) %{_sysconfdir}/ctdb/notify.sh +%config(noreplace) %{_sysconfdir}/ctdb/ctdb-crash-cleanup.sh %config(noreplace) %{_sysconfdir}/ctdb/functions %attr(755,root,root) %{initdir}/ctdb @@ -123,6 +124,10 @@ rm -rf $RPM_BUILD_ROOT %{_docdir}/ctdb/tests/bin/ctdb_transaction %changelog +* Thu Apr 22 2010 : Version 1.0.112-16 + - Fix for a syntax error bug in 10.interfaces + - Add a ctdb-crash-cleanup-sh script that can be used + from a cronjob to release ip addresses if ctdb has stopped. * Wed Apr 21 2010 : Version 1.0.112-15 - Change how we add/remove iptable rules during recovery to make rules leaks less likey. -- CTDB repository