diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon index 14dfe0a02c..5a8fb62cc1 100644 --- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon +++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon @@ -55,6 +55,11 @@ org.apache.hadoop.hbase.util.Bytes; org.apache.hadoop.hbase.util.FSUtils; org.apache.hadoop.hbase.util.JvmVersion; org.apache.hadoop.util.StringUtils; +org.apache.hadoop.hbase.replication.ReplicationPeerConfig; +org.apache.hadoop.hbase.replication.ReplicationPeerDescription; +org.apache.hadoop.hbase.replication.ReplicationException; +org.apache.hadoop.hbase.HBaseConfiguration; +org.apache.hadoop.conf.Configuration; <%if format.equals("json") %> @@ -239,6 +244,62 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
<& ../common/TaskMonitorTmpl; filter = filter &>
+ <%java> + List peersList = null; + if(master != null && master.getConnection() != null){ + try (Admin admin = master.getConnection().getAdmin()) { + peersList = master.isInitialized() ? admin.listReplicationPeers() : null; + } + } + + +
+

Replication Peers

+ + + + + + + + + + <%if peersList != null %> + <%for ReplicationPeerDescription peerEntry : peersList %> + <%java> + String peerID = peerEntry.getPeerId(); + String clusterKey = peerEntry.getPeerConfig().getClusterKey(); + String replicationEndpointImpl = peerEntry.getPeerConfig().getReplicationEndpointImpl(); + Map peerConfiguration = peerEntry.getPeerConfig().getConfiguration(); + String state = ""; + boolean isEnabled = peerEntry.isEnabled(); + state = (isEnabled == true) ? "ENABLED" : "DISABLED"; + + + + + + + <%java> + String mapStr = peerConfiguration.toString(); //encloses key=value pairs in {} + int start = mapStr.indexOf('{'); + int end = mapStr.indexOf('}'); + String strToShow = mapStr.substring(start+1,end); //remove {} + + + + + + + + + + + + + +
Peer IDCluster KeyStatusReplicationEndpointImplConfiguration
<% peerID %><% clusterKey %><% state %><% replicationEndpointImpl %><% strToShow %>
Total:<% peersList.size() %>
+

Software Attributes

diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java index 23efdb21cb..8605c030ec 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java @@ -36,6 +36,7 @@ import org.apache.hadoop.hbase.master.assignment.AssignmentManager; import org.apache.hadoop.hbase.master.assignment.RegionStates; import org.apache.hadoop.hbase.regionserver.MetricsRegionServer; import org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperStub; +import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl; @@ -69,7 +70,7 @@ public class TestMasterStatusServlet { Bytes.toBytes("a"), Bytes.toBytes("b")); @Before - public void setupBasicMocks() { + public void setupBasicMocks() throws IOException { conf = HBaseConfiguration.create(); master = Mockito.mock(HMaster.class); @@ -111,6 +112,13 @@ public class TestMasterStatusServlet { // Mock admin admin = Mockito.mock(Admin.class); + + // set up replication peers list + ReplicationPeerDescription repDescription = Mockito.mock(ReplicationPeerDescription.class); + List peersList = new ArrayList(); + peersList.add(repDescription); + + Mockito.doReturn(peersList).when(admin).listReplicationPeers(); } private void setupMockTables() throws IOException { @@ -132,7 +140,7 @@ public class TestMasterStatusServlet { new MasterStatusTmpl() .setMetaLocation(ServerName.valueOf("metaserver,123,12345")) - .render(new StringWriter(), master); + .render(new StringWriter(), master); } @Test @@ -152,6 +160,6 @@ public class TestMasterStatusServlet { .setMetaLocation(ServerName.valueOf("metaserver,123,12345")) .setServers(servers) .setDeadServers(deadServers) - .render(new StringWriter(), master); + .render(new StringWriter(), master); } }