${INSTALLCMD} -m 755 bin/smnotify $(DESTDIR)$(bindir)
${INSTALLCMD} -m 644 include/ctdb.h $(DESTDIR)$(includedir)
${INSTALLCMD} -m 644 include/ctdb_private.h $(DESTDIR)$(includedir) # for samba3
- ${INSTALLCMD} -m 755 config/events $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 755 config/functions $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 755 config/statd-callout $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 755 config/events.d/README $(DESTDIR)$(etcdir)/ctdb/events.d
+ ${INSTALLCMD} -m 755 config/events.d/00.ctdb $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/10.interface $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/40.vsftpd $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/50.samba $(DESTDIR)$(etcdir)/ctdb/events.d
[ -z "$CTDB_PUBLIC_ADDRESSES" ] || CTDB_OPTIONS="$CTDB_OPTIONS --public-addresses=$CTDB_PUBLIC_ADDRESSES"
[ -z "$CTDB_PUBLIC_INTERFACE" ] || CTDB_OPTIONS="$CTDB_OPTIONS --public-interface=$CTDB_PUBLIC_INTERFACE"
[ -z "$CTDB_DBDIR" ] || CTDB_OPTIONS="$CTDB_OPTIONS --dbdir=$CTDB_DBDIR"
-[ -z "$CTDB_EVENT_SCRIPT" ] || CTDB_OPTIONS="$CTDB_OPTIONS --event-script $CTDB_EVENT_SCRIPT"
+[ -z "$CTDB_EVENT_SCRIPT_DIR" ] || CTDB_OPTIONS="$CTDB_OPTIONS --event-script-dir $CTDB_EVENT_SCRIPT_DIR"
[ -z "$CTDB_TRANSPORT" ] || CTDB_OPTIONS="$CTDB_OPTIONS --transport $CTDB_TRANSPORT"
[ -z "$CTDB_DEBUGLEVEL" ] || CTDB_OPTIONS="$CTDB_OPTIONS -d $CTDB_DEBUGLEVEL"
# defaults to /var/ctdb
# CTDB_DBDIR=/var/ctdb
-# the main script to run when ctdb needs to ask the OS for help,
-# such as when a IP address needs to be taken or released
-# defaults to /etc/ctdb/events
-# CTDB_EVENT_SCRIPT=/etc/ctdb/events
-
# the directory where service specific event scripts are stored
# defaults to /etc/ctdb/events.d
# CTDB_EVENT_SCRIPT_DIR=/etc/ctdb/events.d
struct ctdb_takeover {
bool enabled;
const char *interface;
- const char *main_event_script;
const char *event_script_dir;
TALLOC_CTX *last_ctx;
};
%config(noreplace) %{_sysconfdir}/sysconfig/ctdb
%attr(755,root,root) %config %{initdir}/ctdb
-%{_sysconfdir}/ctdb/events
%{_sysconfdir}/ctdb/functions
%{_sysconfdir}/ctdb/events.d/README
+%{_sysconfdir}/ctdb/events.d/00.ctdb
%{_sysconfdir}/ctdb/events.d/10.interface
%{_sysconfdir}/ctdb/events.d/40.vsftpd
%{_sysconfdir}/ctdb/events.d/50.samba
}
-/*
- setup the event script
-*/
-int ctdb_set_event_script(struct ctdb_context *ctdb, const char *script)
-{
- ctdb->takeover.main_event_script = talloc_strdup(ctdb, script);
- CTDB_NO_MEMORY(ctdb, ctdb->takeover.main_event_script);
- return 0;
-}
-
/*
setup the event script directory
*/
const char *myaddress;
const char *public_address_list;
const char *public_interface;
- const char *event_script;
const char *event_script_dir;
const char *logfile;
const char *recovery_lock_file;
} options = {
.nlist = ETCDIR "/ctdb/nodes",
.transport = "tcp",
- .event_script = ETCDIR "/ctdb/events",
.event_script_dir = ETCDIR "/ctdb/events.d",
.logfile = VARDIR "/log/log.ctdb",
.db_dir = VARDIR "/ctdb",
{ "interactive", 'i', POPT_ARG_NONE, &interactive, 0, "don't fork", NULL },
{ "public-addresses", 0, POPT_ARG_STRING, &options.public_address_list, 0, "public address list file", "filename" },
{ "public-interface", 0, POPT_ARG_STRING, &options.public_interface, 0, "public interface", "interface"},
- { "event-script", 0, POPT_ARG_STRING, &options.event_script, 0, "event script", "filename" },
{ "event-script-dir", 0, POPT_ARG_STRING, &options.event_script_dir, 0, "event script directory", "dirname" },
{ "logfile", 0, POPT_ARG_STRING, &options.logfile, 0, "log file location", "filename" },
{ "nlist", 0, POPT_ARG_STRING, &options.nlist, 0, "node list file", "filename" },
ctdb->takeover.enabled = true;
}
- ret = ctdb_set_event_script(ctdb, options.event_script);
- if (ret == -1) {
- printf("Unable to setup event script\n");
- exit(1);
- }
-
ret = ctdb_set_event_script_dir(ctdb, options.event_script_dir);
if (ret == -1) {
printf("Unable to setup event script directory\n");
struct dirent *de;
char *script;
- /*
- run the main event script
- */
- if (stat(ctdb->takeover.main_event_script, &st) != 0 &&
- errno == ENOENT) {
- DEBUG(0,("No event script found at '%s'\n", ctdb->takeover.main_event_script));
- talloc_free(tmp_ctx);
- return 0;
- }
-
- va_copy(ap2, ap);
- options = talloc_vasprintf(tmp_ctx, fmt, ap2);
- va_end(ap2);
- CTDB_NO_MEMORY(ctdb, options);
-
- cmdstr = talloc_asprintf(tmp_ctx, "%s %s",
- ctdb->takeover.main_event_script, options);
- CTDB_NO_MEMORY(ctdb, cmdstr);
-
-
- ret = system(cmdstr);
- /* if the system() call was successful, translate ret into the
- return code from the command
- */
- if (ret != -1) {
- ret = WEXITSTATUS(ret);
- }
- /* return an error if the script failed */
- if (ret != 0) {
- talloc_free(tmp_ctx);
- return ret;
- }
-
-
-
/*
the service specific event scripts
*/