You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ar...@apache.org on 2021/03/02 06:06:52 UTC
[zookeeper] branch branch-3.7 updated: ZOOKEEPER-3877: JMX Bean
RemotePeerBean should enclose IPV6 host in square bracket same as
LocalPeerBean
This is an automated email from the ASF dual-hosted git repository.
arshad pushed a commit to branch branch-3.7
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/branch-3.7 by this push:
new f49aeef ZOOKEEPER-3877: JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
f49aeef is described below
commit f49aeef86d0cc6a909b2125e7ac03e1ecec61ee0
Author: Mohammad Arshad <ar...@apache.org>
AuthorDate: Tue Mar 2 11:37:47 2021 +0530
ZOOKEEPER-3877: JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
…quare bracket same as LocalPeerBean
Author: Mohammad Arshad <ar...@apache.org>
Reviewers: Enrico Olivelli <eo...@apache.org>
Closes #1493 from arshadmohammad/ZOOKEEPER-3877-master
(cherry picked from commit 425ee189dcf952fd7a2a38df375ec245dcdfbfc6)
Signed-off-by: Mohammad Arshad <ar...@apache.org>
---
.../apache/zookeeper/server/quorum/RemotePeerBean.java | 14 +++++++-------
.../zookeeper/server/quorum/RemotePeerBeanTest.java | 16 ++++++++++++++++
2 files changed, 23 insertions(+), 7 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 2d9d7d3..522ba3a 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,7 +18,9 @@
package org.apache.zookeeper.server.quorum;
+import static org.apache.zookeeper.common.NetUtils.formatInetAddr;
import java.util.stream.Collectors;
+import org.apache.zookeeper.common.NetUtils;
import org.apache.zookeeper.jmx.ZKMBeanInfo;
/**
@@ -47,22 +49,20 @@ public class RemotePeerBean implements RemotePeerMXBean, ZKMBeanInfo {
}
public String getQuorumAddress() {
- return peer.addr.getAllAddresses().stream()
- .map(address -> String.format("%s:%d", address.getHostString(), address.getPort()))
- .collect(Collectors.joining("|"));
+ return peer.addr.getAllAddresses().stream().map(NetUtils::formatInetAddr)
+ .collect(Collectors.joining("|"));
}
public String getElectionAddress() {
- return peer.electionAddr.getAllAddresses().stream()
- .map(address -> String.format("%s:%d", address.getHostString(), address.getPort()))
- .collect(Collectors.joining("|"));
+ return peer.electionAddr.getAllAddresses().stream().map(NetUtils::formatInetAddr)
+ .collect(Collectors.joining("|"));
}
public String getClientAddress() {
if (null == peer.clientAddr) {
return "";
}
- return peer.clientAddr.getHostString() + ":" + peer.clientAddr.getPort();
+ return formatInetAddr(peer.clientAddr);
}
public String getLearnerType() {
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 de145ea..cc2321c 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
@@ -59,4 +59,20 @@ public class RemotePeerBeanTest {
assertFalse(remotePeerBean.isLeader());
}
+ @Test
+ public void testHostPortReturnedWhenIPIsIPV6() {
+ QuorumPeer.QuorumServer quorumServerMock = mock(QuorumPeer.QuorumServer.class);
+ InetSocketAddress address = new InetSocketAddress("127::1", 2181);
+ MultipleAddresses multipleAddresses = new MultipleAddresses(address);
+ quorumServerMock.clientAddr = address;
+ quorumServerMock.electionAddr = multipleAddresses;
+ quorumServerMock.addr = multipleAddresses;
+ 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());
+ }
+
}