From e987ff4c019eae7eb0cdffa6e2b4680ef5cc39ae Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Tue, 23 Jul 2024 15:08:55 -0600 Subject: [PATCH] Fix status.master to detect master properly --- changelog/66716.fixed.md | 2 ++ salt/modules/win_status.py | 12 ++++++++++-- tests/pytests/unit/modules/test_win_status.py | 8 +++++--- 3 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 changelog/66716.fixed.md diff --git a/changelog/66716.fixed.md b/changelog/66716.fixed.md new file mode 100644 index 00000000000..f3ad42f8edf --- /dev/null +++ b/changelog/66716.fixed.md @@ -0,0 +1,2 @@ +Fixed an issue where ``status.master`` wasn't detecting a connection to the +specified master properly diff --git a/salt/modules/win_status.py b/salt/modules/win_status.py index 2becc4cb19b..41b59bf11f6 100644 --- a/salt/modules/win_status.py +++ b/salt/modules/win_status.py @@ -497,8 +497,16 @@ def _get_connected_ips(port): for conn in conns: if conn.status == psutil.CONN_ESTABLISHED: - if conn.laddr.port == port: - connected_ips.add(conn.laddr.ip) + if conn.raddr.port == port: + log.debug( + "%s %s:%s --> %s:%s", + conn.status, + conn.laddr.ip, + conn.laddr.port, + conn.raddr.ip, + conn.raddr.port, + ) + connected_ips.add(conn.raddr.ip) return connected_ips diff --git a/tests/pytests/unit/modules/test_win_status.py b/tests/pytests/unit/modules/test_win_status.py index c941b9ccfa1..236e164935b 100644 --- a/tests/pytests/unit/modules/test_win_status.py +++ b/tests/pytests/unit/modules/test_win_status.py @@ -16,9 +16,11 @@ def test__get_connected_ips(): conns = psutil.net_connections() for conn in conns: if conn.status == psutil.CONN_ESTABLISHED: - ip = conn.laddr.ip - port = conn.laddr.port + ip = conn.raddr.ip + port = conn.raddr.port break assert port is not None assert ip is not None - assert win_status._get_connected_ips(port) == {ip} + # Since this may return more than one IP, let's make sure our test IP is in + # the list of IPs + assert ip in win_status._get_connected_ips(port)