Author: stack
Date: Wed Sep 14 02:54:15 2011
New Revision: 1170421

URL: http://svn.apache.org/viewvc?rev=1170421&view=rev
Log:
HBASE-4359 Show dead RegionServer names in the HMaster info page

Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterStatusServlet.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1170421&r1=1170420&r2=1170421&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Sep 14 02:54:15 2011
@@ -474,6 +474,8 @@ Release 0.91.0 - Unreleased
                (ramkrishna.s.vasudevan)
    HBASE-4347  Remove duplicated code from Put, Delete, Get, Scan, MultiPut
                (Lars Hofhansl)
+   HBASE-4359  Show dead RegionServer names in the HMaster info page
+               (Harsh J)
 
   TASKS
    HBASE-3559  Move report of split to master OFF the heartbeat channel

Modified: 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon?rev=1170421&r1=1170420&r2=1170421&view=diff
==============================================================================
--- 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon 
(original)
+++ 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon 
Wed Sep 14 02:54:15 2011
@@ -24,6 +24,7 @@ Map<String, Integer> frags = null;
 ServerName rootLocation = null;
 ServerName metaLocation = null;
 List<ServerName> servers = null;
+Set<ServerName> deadServers = null;
 boolean showAppendWarning = false;
 String filter = "general";
 String format = "html";
@@ -111,6 +112,9 @@ org.apache.hadoop.hbase.HTableDescriptor
 <%if (servers != null) %>
 <& regionServers &>
 </%if>
+<%if (deadServers != null) %>
+<& deadRegionServers &>
+</%if>
 
 <& AssignmentManagerStatusTmpl; 
assignmentManager=master.getAssignmentManager()&>
 
@@ -215,3 +219,26 @@ org.apache.hadoop.hbase.HTableDescriptor
 <p>Load is requests per second and count of regions loaded</p>
 </%if>
 </%def>
+
+<%def deadRegionServers>
+<h2>Dead Region Servers</h2>
+<%if (deadServers != null && deadServers.size() > 0)%>
+
+<table>
+<tr><th rowspan="<% deadServers.size() + 1%>"></th><th>Address</th><th>Start 
Code</th></tr>
+<%java>
+   ServerName [] deadServerNames = deadServers.toArray(new 
ServerName[deadServers.size()]);
+     Arrays.sort(deadServerNames);
+     for (ServerName deadServerName: deadServerNames) {
+       int infoPort = 
master.getConfiguration().getInt("hbase.regionserver.info.port", 60030);
+       String hostname = deadServerName.getHostname() + ":" + infoPort;
+       long startcode = deadServerName.getStartcode();
+</%java>
+<tr><td><% hostname %></td><td><% startcode %></tr>
+<%java>
+    }
+</%java>
+<tr><th>Total: </th><td>servers: <% deadServers.size() %></td></tr>
+</table>
+</%if>
+</%def>
\ No newline at end of file

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterStatusServlet.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterStatusServlet.java?rev=1170421&r1=1170420&r2=1170421&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterStatusServlet.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterStatusServlet.java
 Wed Sep 14 02:54:15 2011
@@ -23,6 +23,7 @@ import java.io.IOException;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -59,6 +60,7 @@ public class MasterStatusServlet extends
     ServerName rootLocation = getRootLocationOrNull(master);
     ServerName metaLocation = master.getCatalogTracker().getMetaLocation();
     List<ServerName> servers = 
master.getServerManager().getOnlineServersList();
+    Set<ServerName> deadServers = master.getServerManager().getDeadServers();
 
     response.setContentType("text/html");
     MasterStatusTmpl tmpl = new MasterStatusTmpl()
@@ -66,7 +68,8 @@ public class MasterStatusServlet extends
       .setShowAppendWarning(shouldShowAppendWarning(conf))
       .setRootLocation(rootLocation)
       .setMetaLocation(metaLocation)
-      .setServers(servers);
+      .setServers(servers)
+      .setDeadServers(deadServers);
     if (request.getParameter("filter") != null)
       tmpl.setFilter(request.getParameter("filter"));
     if (request.getParameter("format") != null)

Modified: 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java?rev=1170421&r1=1170420&r2=1170421&view=diff
==============================================================================
--- 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java
 (original)
+++ 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterStatusServlet.java
 Wed Sep 14 02:54:15 2011
@@ -23,8 +23,10 @@ import static org.junit.Assert.*;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.util.HashSet;
 import java.util.List;
 import java.util.NavigableMap;
+import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -134,11 +136,17 @@ public class TestMasterStatusServlet {
     List<ServerName> servers = Lists.newArrayList(
         new ServerName("rootserver:123,12345"),
         new ServerName("metaserver:123,12345"));
-                  
+    Set<ServerName> deadServers = new HashSet<ServerName>(
+        Lists.newArrayList(
+        new ServerName("badserver:123,12345"),
+        new ServerName("uglyserver:123,12345"))
+    );
+
     new MasterStatusTmpl()
       .setRootLocation(new ServerName("rootserver:123,12345"))
       .setMetaLocation(new ServerName("metaserver:123,12345"))
       .setServers(servers)
+      .setDeadServers(deadServers)
       .render(new StringWriter(),
         master, admin);
   }


Reply via email to