summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_monitor.c
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2013-01-10 16:06:25 +1100
committerAmitay Isaacs <amitay@gmail.com>2013-05-24 14:08:06 +1000
commit63577c96db3877417030f441268b3ec79bb82c2a (patch)
treedaf62bef0535c6bdbc496591b9276bb2b876b04a /ctdb/server/ctdb_monitor.c
parentc5bcff6724b85bac1a6343f67034b81ebbb7a2c2 (diff)
downloadsamba-63577c96db3877417030f441268b3ec79bb82c2a.tar.gz
samba-63577c96db3877417030f441268b3ec79bb82c2a.tar.xz
samba-63577c96db3877417030f441268b3ec79bb82c2a.zip
ctdbd: Replace ctdb->done_startup with ctdb->runstate
This allows states, including startup and shutdown states, to be clearly tracked. This doesn't include regular runtime "states", which are handled by node flags. Introduce new functions ctdb_set_runstate(), runstate_to_string() and runstate_from_string(). Signed-off-by: Martin Schwenke <martin@meltin.net> Pair-programmed-with: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 8076773a9924dcf8aff16f7d96b2b9ac383ecc28)
Diffstat (limited to 'ctdb/server/ctdb_monitor.c')
-rw-r--r--ctdb/server/ctdb_monitor.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ctdb/server/ctdb_monitor.c b/ctdb/server/ctdb_monitor.c
index 984f947a3b4..1e556e00d87 100644
--- a/ctdb/server/ctdb_monitor.c
+++ b/ctdb/server/ctdb_monitor.c
@@ -204,7 +204,7 @@ static void ctdb_startup_callback(struct ctdb_context *ctdb, int status, void *p
DEBUG(DEBUG_ERR,("startup event failed\n"));
} else if (status == 0) {
DEBUG(DEBUG_NOTICE,("startup event OK - enabling monitoring\n"));
- ctdb->done_startup = true;
+ ctdb_set_runstate(ctdb, CTDB_RUNSTATE_RUNNING);
ctdb->monitor->next_interval = 2;
ctdb_run_notification_script(ctdb, "startup");
}
@@ -324,14 +324,15 @@ static void ctdb_check_health(struct event_context *ev, struct timed_event *te,
int ret = 0;
if (ctdb->recovery_mode != CTDB_RECOVERY_NORMAL ||
- (ctdb->monitor->monitoring_mode == CTDB_MONITORING_DISABLED && ctdb->done_startup)) {
+ (ctdb->monitor->monitoring_mode == CTDB_MONITORING_DISABLED &&
+ ctdb->runstate == CTDB_RUNSTATE_RUNNING)) {
event_add_timed(ctdb->ev, ctdb->monitor->monitor_context,
timeval_current_ofs(ctdb->monitor->next_interval, 0),
ctdb_check_health, ctdb);
return;
}
- if (!ctdb->done_startup) {
+ if (ctdb->runstate == CTDB_RUNSTATE_STARTUP) {
ret = ctdb_event_script_callback(ctdb,
ctdb->monitor->monitor_context, ctdb_startup_callback,
ctdb, false,
@@ -477,7 +478,7 @@ int32_t ctdb_control_modflags(struct ctdb_context *ctdb, TDB_DATA indata)
DEBUG(DEBUG_INFO, ("Control modflags on node %u - flags now 0x%x\n", c->pnn, node->flags));
- if (node->flags == 0 && !ctdb->done_startup) {
+ if (node->flags == 0 && ctdb->runstate == CTDB_RUNSTATE_STARTUP) {
DEBUG(DEBUG_ERR, (__location__ " Node %u became healthy - force recovery for startup\n",
c->pnn));
ctdb->recovery_mode = CTDB_RECOVERY_ACTIVE;