The branch, master has been updated
       via  6c900aa343096c5e1e297e055c36832ffa5028dd (commit)
       via  feab5f30b2d6cebf4dd28abc5a81f93424a4c852 (commit)
      from  a9f851caec2525ccbb3a6d6283eaef52b89a4eb2 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6c900aa343096c5e1e297e055c36832ffa5028dd
Author: Ronnie Sahlberg <[email protected]>
Date:   Wed Apr 8 12:56:52 2009 +1000

    new version 1.0.79

commit feab5f30b2d6cebf4dd28abc5a81f93424a4c852
Author: Ronnie Sahlberg <[email protected]>
Date:   Wed Apr 8 12:49:28 2009 +1000

    create a function "remote_ip" which can be used from scripts to remove a 
single ip from an interface.
    
    use this fucntion from the natgw eventscript

-----------------------------------------------------------------------

Summary of changes:
 config/events.d/11.natgw |    7 ++++---
 config/functions         |   25 +++++++++++++++++++++++++
 packaging/RPM/ctdb.spec  |   10 +++++++++-
 3 files changed, 38 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/config/events.d/11.natgw b/config/events.d/11.natgw
index 2d256ba..1e0543d 100644
--- a/config/events.d/11.natgw
+++ b/config/events.d/11.natgw
@@ -14,16 +14,17 @@ cmd="$1"
 shift
 PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH
 
+
 delete_all() {
-       ip addr add $NATGW_PUBLIC_IP dev $NATGW_PUBLIC_IFACE >/dev/null 
2>/dev/null
-       ip addr del $NATGW_PUBLIC_IP_HOST dev $NATGW_PRIVATE_IFACE >/dev/null 
2>/dev/null
+       remove_ip $NATGW_PUBLIC_IP $NATGW_PUBLIC_IFACE
+       remove_ip $NATGW_PUBLIC_IP_HOST $NATGW_PRIVATE_IFACE
+
        ip route del 0.0.0.0/0 metric 10 >/dev/null 2>/dev/null
 
        # Delete the masquerading setup from a previous iteration where we
        # were the NAT-GW
        iptables -D POSTROUTING -t nat -s $NATGW_PRIVATE_NETWORK -d ! 
$NATGW_PRIVATE_NETWORK -j MASQUERADE >/dev/null 2>/dev/null
 
-       ip addr del $NATGW_PUBLIC_IP dev $NATGW_PUBLIC_IFACE >/dev/null 
2>/dev/null
 }
 
 case $cmd in 
diff --git a/config/functions b/config/functions
index 2f0b01f..8b29fe4 100644
--- a/config/functions
+++ b/config/functions
@@ -438,6 +438,30 @@ startstop_nfslock() {
 }
 
 ########################################################
+# remove an ip address from an interface
+########################################################
+remove_ip() {
+       # the ip tool will delete all secondary IPs if this is the primary.
+       # To work around this _very_ annoying behaviour we have to keep a
+       # record of the secondaries and re-add them afterwards. yuck
+       secondaries=""
+       if ip addr list dev $2 primary | grep -q "inet $1 " ; then
+           secondaries=`ip addr list dev $2 secondary | grep " inet " | awk 
'{print $2}'`
+       fi
+       ip addr del $1 dev $2 >/dev/null 2>/dev/null || failed=1
+       [ -z "$secondaries" ] || {
+           for i in $secondaries; do
+               if ip addr list dev $2 | grep -q "inet $i" ; then
+                   echo "kept secondary $i on dev $2"
+               else 
+                   echo "re-adding secondary address $i to dev $2"
+                   ip addr add $i dev $2 || failed=1           
+               fi
+           done
+       }
+}
+
+########################################################
 # load a site local config file
 ########################################################
 
@@ -445,3 +469,4 @@ startstop_nfslock() {
        . $CTDB_BASE/rc.local
 }
 
+
diff --git a/packaging/RPM/ctdb.spec b/packaging/RPM/ctdb.spec
index 3bedcc6..77bb0ba 100644
--- a/packaging/RPM/ctdb.spec
+++ b/packaging/RPM/ctdb.spec
@@ -4,7 +4,7 @@ Summary: Clustered TDB
 Vendor: Samba Team
 Packager: Samba Team <[email protected]>
 Name: ctdb
-Version: 1.0.78
+Version: 1.0.79
 Release: 1
 Epoch: 0
 License: GNU GPL version 3
@@ -131,6 +131,14 @@ fi
 %{_libdir}/pkgconfig/ctdb.pc
 
 %changelog
+* Wed Apr 8 2009 : Version 1.0.79
+ - From Mathieu Parent: add a ctdb pkgconfig file
+ - Fix bug 6250
+ - add a funciton remove_ip to safely remove an ip from an interface, taking 
care to workaround an issue with linux alias interfaces.
+ - Update the natgw eventscript to use the safe remove_ip() function
+ - fix a bug in the eventscript child process that would cause the socket to 
be removed.
+ - dont verify nodemap on banned nodes during cluster monitoring
+ - Update the dodgy SeqnumInterval to have ms resolution
 * Tue Mar 31 2009 : Version 1.0.78
  - Add a notify mechanism so we can send snmptraps/email to external 
management systems when the node becomes unhealthy
  - include 11.natgw eventscript in thew install so that the NATGW feature works


-- 
CTDB repository

Reply via email to