]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
call the event script on recovery too
authorAndrew Tridgell <tridge@samba.org>
Tue, 29 May 2007 02:55:24 +0000 (12:55 +1000)
committerAndrew Tridgell <tridge@samba.org>
Tue, 29 May 2007 02:55:24 +0000 (12:55 +1000)
(This used to be ctdb commit 8c43a91cbd6e502c93bd6cc51df1272eae426709)

ctdb/common/ctdb_recover.c
ctdb/include/ctdb_private.h
ctdb/takeover/ctdb_takeover.c
ctdb/takeover/system.c

index 604ba1fa2dac329e29aad4b9d54472ecfc652dea..847d9e5abc5cea7df0929e1eeae8a7a59cf7b8f6 100644 (file)
@@ -447,6 +447,7 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, TDB_DATA indata,
                return -1;
        }
        ctdb->recovery_mode = recmode;
+       ctdb_event_script(ctdb, "recovered");
        return 0;
 }
 
index a5f98b3d3f8fba999e3c144991102db8ee10b225..f5d93b5301e5141ee2e6cab6bfb3eea9d229376c 100644 (file)
@@ -945,6 +945,6 @@ int32_t ctdb_control_tcp_remove(struct ctdb_context *ctdb, TDB_DATA indata);
 int32_t ctdb_control_startup(struct ctdb_context *ctdb, uint32_t vnn);
 
 void ctdb_takeover_client_destructor_hook(struct ctdb_client *client);
-
+int ctdb_event_script(struct ctdb_context *ctdb, const char *fmt, ...);
 
 #endif
index aa358c5fd39e962f1197c43244183ccbdd65cebf..02e2825e6bb607e2570811f2764b5479c99dae67 100644 (file)
@@ -92,26 +92,6 @@ static void ctdb_control_send_arp(struct event_context *ev, struct timed_event *
 }
 
 
-/*
-  run the event script
- */
-static int ctdb_event_script(struct ctdb_context *ctdb, const char *fmt, ...)
-{
-       va_list ap;
-       char *cmdstr;
-       int ret;
-
-       va_start(ap, fmt);
-       cmdstr = talloc_vasprintf(ctdb, fmt, ap);
-       va_end(ap);
-       CTDB_NO_MEMORY(ctdb, cmdstr);
-
-       ret = system(cmdstr);
-       talloc_free(cmdstr);
-
-       return ret;
-}
-
 /*
   take over an ip address
  */
index db55f2c2099c0bc2b46d7e6cd6ac6be0a8ea0c8d..493eddefa731d66f4e238877f95edcd91107f97a 100644 (file)
@@ -257,3 +257,28 @@ bool ctdb_sys_have_ip(const char *ip)
        return ret == 0;
 }
 
+/*
+  run the event script
+ */
+int ctdb_event_script(struct ctdb_context *ctdb, const char *fmt, ...)
+{
+       va_list ap;
+       char *options, *cmdstr;
+       int ret;
+
+       va_start(ap, fmt);
+       options  = talloc_vasprintf(ctdb, fmt, ap);
+       va_end(ap);
+       CTDB_NO_MEMORY(ctdb, options);
+
+       cmdstr = talloc_asprintf(ctdb, "%s %s", ctdb->takeover.event_script, options);
+       CTDB_NO_MEMORY(ctdb, cmdstr);
+
+       ret = system(cmdstr);
+
+       talloc_free(cmdstr);
+       talloc_free(options);
+
+       return ret;
+}
+