From abb16e4366b3e1c07cc3eb12bd9ffab97655164d Mon Sep 17 00:00:00 2001 From: Gianni Ciolli Date: Fri, 5 Aug 2016 08:30:39 +0200 Subject: [PATCH] Now STANDBY SWITCHOVER and STANDBY FOLLOW log an event notification on success and also on some failures, precisely those when it makes sense or it is reasonably possible to do so. --- repmgr.c | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/repmgr.c b/repmgr.c index 5306d555..b6ec3a6b 100644 --- a/repmgr.c +++ b/repmgr.c @@ -2792,6 +2792,13 @@ do_standby_follow(void) } /* XXX add event record - possible move from repmgrd? */ + create_event_record(master_conn, + &options, + options.node, + "standby_follow", + true, + NULL); + PQfinish(master_conn); return; @@ -3499,9 +3506,20 @@ do_standby_switchover(void) if (query_result == -1) { - log_err(_("unable to retrieve replication status for node %i\n"), remote_node_id); + PQExpBufferData event_details; + initPQExpBuffer(&event_details); + appendPQExpBuffer(&event_details, + _("unable to retrieve replication status for node %i"), + remote_node_id); + log_err("%s\n", event_details.data); + create_event_record(local_conn, + &options, + options.node, + "standby_switchover", + false, + event_details.data); + termPQExpBuffer(&event_details); PQfinish(local_conn); - exit(ERR_SWITCHOVER_FAIL); } @@ -3525,8 +3543,19 @@ do_standby_switchover(void) * - backup * - UNKNOWN */ - log_err(_("node %i has unexpected replication state \"%s\"\n"), - remote_node_id, remote_node_replication_state); + PQExpBufferData event_details; + initPQExpBuffer(&event_details); + appendPQExpBuffer(&event_details, + _("node %i has unexpected replication state \"%s\""), + remote_node_id, remote_node_replication_state); + log_err("%s\n", event_details.data); + create_event_record(local_conn, + &options, + options.node, + "standby_switchover", + false, + event_details.data); + termPQExpBuffer(&event_details); PQfinish(local_conn); exit(ERR_SWITCHOVER_FAIL); } @@ -3583,6 +3612,13 @@ do_standby_switchover(void) /* TODO: verify this node's record was updated correctly */ + create_event_record(local_conn, + &options, + options.node, + "standby_switchover", + true, + NULL); + PQfinish(local_conn); log_notice(_("switchover was successful\n"));