]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: server: indicate in the logs when RMAINT is cleared
authorWilly Tarreau <w@1wt.eu>
Mon, 7 Nov 2016 14:42:33 +0000 (15:42 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 9 Nov 2016 14:23:37 +0000 (15:23 +0100)
It's important to report in the server state change logs that RMAINT was
cleared, as it's not the regular maintenance mode, it's specific to name
resolution, and it's important to report the new state (which can be DRAIN
or READY).

src/server.c

index 11add3c6103d4b9569a57dbfad5c131594772fcd..3aeb557bf0cb88affd938e663323eabcf067eaf6 100644 (file)
@@ -549,6 +549,18 @@ void srv_clr_admin_flag(struct server *s, enum srv_admin mode)
                        Warning("%s.\n", trash.str);
                        send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
                }
+               if (mode & SRV_ADMF_RMAINT) {
+                       chunk_printf(&trash,
+                                    "%sServer %s/%s ('%s') resolves again but remains in maintenance",
+                                    s->flags & SRV_F_BACKUP ? "Backup " : "",
+                                    s->proxy->id, s->id, s->hostname);
+
+                       if (s->track) /* normally it's mandatory here */
+                               chunk_appendf(&trash, " via %s/%s",
+                                             s->track->proxy->id, s->track->id);
+                       Warning("%s.\n", trash.str);
+                       send_log(s->proxy, LOG_NOTICE, "%s.\n", trash.str);
+               }
                else if (mode & SRV_ADMF_IMAINT) {
                        chunk_printf(&trash,
                                     "%sServer %s/%s remains in forced maintenance",
@@ -629,6 +641,14 @@ void srv_clr_admin_flag(struct server *s, enum srv_admin mode)
                                     (s->state == SRV_ST_STOPPED) ? "DOWN" : "UP",
                                     (s->admin & SRV_ADMF_DRAIN) ? "DRAIN" : "READY");
                }
+               else if (mode & SRV_ADMF_RMAINT) {
+                       chunk_printf(&trash,
+                                    "%sServer %s/%s ('%s') is %s/%s (resolves again)",
+                                    s->flags & SRV_F_BACKUP ? "Backup " : "",
+                                    s->proxy->id, s->id, s->hostname,
+                                    (s->state == SRV_ST_STOPPED) ? "DOWN" : "UP",
+                                    (s->admin & SRV_ADMF_DRAIN) ? "DRAIN" : "READY");
+               }
                else {
                        chunk_printf(&trash,
                                     "%sServer %s/%s is %s/%s (leaving maintenance)",