diff options
author | Mohammad Arshad <arshad@apache.org> | 2021-03-02 11:37:47 +0530 |
---|---|---|
committer | Mate Szalay-Beko <mszalay@cloudera.com> | 2022-05-17 10:24:21 +0200 |
commit | 90322afd4301af461175ef2f0fb1539593fb2f77 (patch) | |
tree | 5d59fc1b2a026d07d33210f437e295cc4f7b464b | |
parent | fd9219c4f5d4a0e9423cc2fd3d03c86a2edfa6d6 (diff) | |
download | zookeeper-90322afd4301af461175ef2f0fb1539593fb2f77.tar.gz |
ZOOKEEPER-3877: JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
…quare bracket same as LocalPeerBean
Author: Mohammad Arshad <arshad@apache.org>
Reviewers: Enrico Olivelli <eolivelli@apache.org>
Closes #1493 from arshadmohammad/ZOOKEEPER-3877-master
(cherry picked from commit 425ee189dcf952fd7a2a38df375ec245dcdfbfc6)
Signed-off-by: Mohammad Arshad <arshad@apache.org>
(cherry picked from commit a51b222de42fd0d0591dd8eda39a9045324a11fc)
-rw-r--r-- | zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java | 12 | ||||
-rw-r--r-- | zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java | 15 |
2 files changed, 21 insertions, 6 deletions
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java index 285f11a85..573859eb3 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java @@ -18,11 +18,12 @@ package org.apache.zookeeper.server.quorum; +import static org.apache.zookeeper.common.NetUtils.formatInetAddr; import org.apache.zookeeper.jmx.ZKMBeanInfo; /** * A remote peer bean only provides limited information about the remote peer, - * and the peer cannot be managed remotely. + * and the peer cannot be managed remotely. */ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { private QuorumPeer.QuorumServer peer; @@ -45,19 +46,18 @@ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { } public String getQuorumAddress() { - return peer.addr.getHostString()+":"+peer.addr.getPort(); + return formatInetAddr(peer.addr); } public String getElectionAddress() { - return peer.electionAddr.getHostString() + ":" + peer.electionAddr.getPort(); + return formatInetAddr(peer.electionAddr); } public String getClientAddress() { if (null == peer.clientAddr) { return ""; } - return peer.clientAddr.getHostString() + ":" - + peer.clientAddr.getPort(); + return formatInetAddr(peer.clientAddr); } public String getLearnerType() { @@ -68,5 +68,5 @@ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { public boolean isLeader() { return localPeer.isLeader(peer.getId()); } - + } diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java index 08dff63fb..f4457a762 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java @@ -61,4 +61,19 @@ public class RemotePeerBeanTest { assertFalse(remotePeerBean.isLeader()); } + @Test + public void testHostPortReturnedWhenIPIsIPV6() { + QuorumPeer.QuorumServer quorumServerMock = mock(QuorumPeer.QuorumServer.class); + InetSocketAddress address = new InetSocketAddress("127::1", 2181); + quorumServerMock.clientAddr = address; + quorumServerMock.electionAddr = address; + quorumServerMock.addr = address; + QuorumPeer peerMock = mock(QuorumPeer.class); + RemotePeerBean remotePeerBean = new RemotePeerBean(peerMock, quorumServerMock); + String expectedHostPort = "[127:0:0:0:0:0:0:1]:2181"; + assertEquals(expectedHostPort, remotePeerBean.getClientAddress()); + assertEquals(expectedHostPort, remotePeerBean.getElectionAddress()); + assertEquals(expectedHostPort, remotePeerBean.getQuorumAddress()); + } + } |