From 942457e48f4985942abd09e199ddda8a511e2599 Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Thu, 17 Sep 2026 17:13:34 -0400 Subject: [PATCH] Report notification successor from target action --- plugins/postgresql/plugin.py | 19 +++++++++++++++++-- tests/test-notify-target.py | 8 ++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/plugins/postgresql/plugin.py b/plugins/postgresql/plugin.py index 76655db..ee77512 100644 --- a/plugins/postgresql/plugin.py +++ b/plugins/postgresql/plugin.py @@ -494,9 +494,23 @@ def notify_target(config, runtime_state, request_parameters): operation = notification.get("operation") if operation == "demote": - target_node = notification.get("demote_uname", "").strip().lower() + target_node = notification.get( + "demote_uname", + "", + ).strip().lower() + successor_node = notification.get( + "promote_uname", + "", + ).strip().lower() elif operation == "promote": - target_node = notification.get("promote_uname", "").strip().lower() + target_node = notification.get( + "promote_uname", + "", + ).strip().lower() + successor_node = notification.get( + "demote_uname", + "", + ).strip().lower() else: return { "ocf_rc": 1, @@ -511,6 +525,7 @@ def notify_target(config, runtime_state, request_parameters): "target": target_node == node_name, "operation": operation, "target_node": target_node, + "successor_node": successor_node, "node": node_name, "age_seconds": age, } diff --git a/tests/test-notify-target.py b/tests/test-notify-target.py index 50917e1..81f3ab9 100755 --- a/tests/test-notify-target.py +++ b/tests/test-notify-target.py @@ -50,6 +50,14 @@ runtime_state = { result = plugin.notify_target(config, runtime_state, {}) require(result["ocf_rc"] == 0, "fresh target query failed") require(result["target"] is True, "local demote target was not detected") +require( + result["target_node"] == "david-macbookpro", + "local target node was incorrect", +) +require( + result["successor_node"] == "david-prodesk", + "successor node was not reported", +) print("matching_target accepted") config["PACEMAKER_NODE_NAME"] = "david-eve"