Rev 376: clean shutdown in ctdb - release all our IPs in
http://samba.org/~tridge/ctdb
tridge at samba.org
tridge at samba.org
Tue May 29 03:34:00 GMT 2007
------------------------------------------------------------
revno: 376
revision-id: tridge at samba.org-20070529033359-zvutvg5816i8pp2f
parent: tridge at samba.org-20070529032137-pfsv1azm496c6mg0
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Tue 2007-05-29 13:33:59 +1000
message:
clean shutdown in ctdb - release all our IPs
modified:
common/ctdb_control.c ctdb_control.c-20070426122724-j6gkpiofhbwdin63-1
include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
takeover/ctdb_takeover.c ctdb_takeover.c-20070525071636-a5n1ihghjtppy08r-2
tools/events events-20070529030121-04fjh63cxfh8v1pj-1
=== modified file 'common/ctdb_control.c'
--- a/common/ctdb_control.c 2007-05-29 02:16:59 +0000
+++ b/common/ctdb_control.c 2007-05-29 03:33:59 +0000
@@ -250,7 +250,10 @@
return ctdb->monitoring_mode;
case CTDB_CONTROL_SHUTDOWN:
- exit(10);
+ ctdb_release_all_ips(ctdb);
+ ctdb_event_script(ctdb, "shutdown");
+ DEBUG(0,("shutting down\n"));
+ exit(0);
case CTDB_CONTROL_MAX_RSN:
CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h 2007-05-29 02:55:24 +0000
+++ b/include/ctdb_private.h 2007-05-29 03:33:59 +0000
@@ -946,5 +946,6 @@
void ctdb_takeover_client_destructor_hook(struct ctdb_client *client);
int ctdb_event_script(struct ctdb_context *ctdb, const char *fmt, ...);
+void ctdb_release_all_ips(struct ctdb_context *ctdb);
#endif
=== modified file 'takeover/ctdb_takeover.c'
--- a/takeover/ctdb_takeover.c 2007-05-29 02:55:24 +0000
+++ b/takeover/ctdb_takeover.c 2007-05-29 03:33:59 +0000
@@ -526,3 +526,26 @@
talloc_free(tcp);
}
}
+
+
+/*
+ release all IPs on shutdown
+ */
+void ctdb_release_all_ips(struct ctdb_context *ctdb)
+{
+ int i;
+
+ if (!ctdb->takeover.enabled) {
+ return;
+ }
+
+ for (i=0;i<ctdb->num_nodes;i++) {
+ struct ctdb_node *node = ctdb->nodes[i];
+ if (ctdb_sys_have_ip(node->public_address)) {
+ ctdb_event_script(ctdb, "releaseip %s %s %u",
+ ctdb->takeover.interface,
+ node->public_address,
+ node->public_netmask_bits);
+ }
+ }
+}
=== modified file 'tools/events'
--- a/tools/events 2007-05-29 03:21:37 +0000
+++ b/tools/events 2007-05-29 03:33:59 +0000
@@ -30,6 +30,7 @@
;;
recovered)
+ shutdown)
# restart any services as necessary, like NFS
exit 0
;;
More information about the samba-cvs
mailing list