001// Autogenerated Jamon implementation
002// /Users/petersomogyi/projects/hbase-upstream/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
003
004package org.apache.hadoop.hbase.tmpl.master;
005
006// 32, 1
007import java.util.*;
008// 33, 1
009import java.io.IOException;
010// 34, 1
011import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil;
012// 35, 1
013import org.apache.hadoop.hbase.client.RegionInfo;
014// 36, 1
015import org.apache.hadoop.hbase.client.TableDescriptor;
016// 37, 1
017import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
018// 38, 1
019import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;
020// 39, 1
021import org.apache.hadoop.hbase.HBaseConfiguration;
022// 40, 1
023import org.apache.hadoop.hbase.HConstants;
024// 41, 1
025import org.apache.hadoop.hbase.HTableDescriptor;
026// 42, 1
027import org.apache.hadoop.hbase.NamespaceDescriptor;
028// 43, 1
029import org.apache.hadoop.hbase.ServerName;
030// 44, 1
031import org.apache.hadoop.hbase.TableName;
032// 45, 1
033import org.apache.hadoop.hbase.client.Admin;
034// 46, 1
035import org.apache.hadoop.hbase.client.MasterSwitchType;
036// 47, 1
037import org.apache.hadoop.hbase.client.TableState;
038// 48, 1
039import org.apache.hadoop.hbase.master.assignment.AssignmentManager;
040// 49, 1
041import org.apache.hadoop.hbase.master.DeadServer;
042// 50, 1
043import org.apache.hadoop.hbase.master.HMaster;
044// 51, 1
045import org.apache.hadoop.hbase.master.RegionState;
046// 52, 1
047import org.apache.hadoop.hbase.master.ServerManager;
048// 53, 1
049import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
050// 54, 1
051import org.apache.hadoop.hbase.quotas.QuotaUtil;
052// 55, 1
053import org.apache.hadoop.hbase.security.access.AccessControlLists;
054// 56, 1
055import org.apache.hadoop.hbase.security.visibility.VisibilityConstants;
056// 57, 1
057import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;
058// 58, 1
059import org.apache.hadoop.hbase.tool.CanaryTool;
060// 59, 1
061import org.apache.hadoop.hbase.util.Bytes;
062// 60, 1
063import org.apache.hadoop.hbase.util.FSUtils;
064// 61, 1
065import org.apache.hadoop.hbase.util.JvmVersion;
066// 62, 1
067import org.apache.hadoop.util.StringUtils;
068
069public class MasterStatusTmplImpl
070  extends org.jamon.AbstractTemplateImpl
071  implements org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.Intf
072
073{
074  private final HMaster master;
075  private final AssignmentManager assignmentManager;
076  private final boolean catalogJanitorEnabled;
077  private final Set<ServerName> deadServers;
078  private final String filter;
079  private final String format;
080  private final Map<String,Integer> frags;
081  private final ServerName metaLocation;
082  private final ServerManager serverManager;
083  private final List<ServerName> servers;
084  // 74, 1
085  
086  public String formatZKString() {
087    StringBuilder quorums = new StringBuilder();
088    String zkQuorum = master.getZooKeeper().getQuorum();
089
090    if (null == zkQuorum) {
091      return quorums.toString();
092    }
093
094    String[] zks = zkQuorum.split(",");
095
096    if (zks.length == 0) {
097      return quorums.toString();
098    }
099
100    for(int i = 0; i < zks.length; ++i) {
101      quorums.append(zks[i].trim());
102
103      if (i != (zks.length - 1)) {
104        quorums.append("<br/>");
105      }
106    }
107
108    return quorums.toString();
109  }
110
111  // 101, 1
112  
113  public static String getUserTables(HMaster master, List<TableDescriptor> tables){
114    if (master.isInitialized()){
115      try {
116        Map<String, TableDescriptor> descriptorMap = master.getTableDescriptors().getAll();
117        if (descriptorMap != null) {
118          for (TableDescriptor desc : descriptorMap.values()) {
119            if (!desc.getTableName().isSystemTable()) {
120             tables.add(desc);
121            }
122          }
123        }
124      } catch (IOException e) {
125        return "Got user tables error, " + e.getMessage();
126      }
127    }
128    return null;
129  }
130
131  protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
132  {
133    if(! p_implData.getAssignmentManager__IsNotDefault())
134    {
135      p_implData.setAssignmentManager(null);
136    }
137    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
138    {
139      p_implData.setCatalogJanitorEnabled(true);
140    }
141    if(! p_implData.getDeadServers__IsNotDefault())
142    {
143      p_implData.setDeadServers(null);
144    }
145    if(! p_implData.getFilter__IsNotDefault())
146    {
147      p_implData.setFilter("general");
148    }
149    if(! p_implData.getFormat__IsNotDefault())
150    {
151      p_implData.setFormat("html");
152    }
153    if(! p_implData.getFrags__IsNotDefault())
154    {
155      p_implData.setFrags(null);
156    }
157    if(! p_implData.getMetaLocation__IsNotDefault())
158    {
159      p_implData.setMetaLocation(null);
160    }
161    if(! p_implData.getServerManager__IsNotDefault())
162    {
163      p_implData.setServerManager(null);
164    }
165    if(! p_implData.getServers__IsNotDefault())
166    {
167      p_implData.setServers(null);
168    }
169    return p_implData;
170  }
171  public MasterStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
172  {
173    super(p_templateManager, __jamon_setOptionalArguments(p_implData));
174    master = p_implData.getMaster();
175    assignmentManager = p_implData.getAssignmentManager();
176    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
177    deadServers = p_implData.getDeadServers();
178    filter = p_implData.getFilter();
179    format = p_implData.getFormat();
180    frags = p_implData.getFrags();
181    metaLocation = p_implData.getMetaLocation();
182    serverManager = p_implData.getServerManager();
183    servers = p_implData.getServers();
184  }
185  
186  @Override public void renderNoFlush(final java.io.Writer jamonWriter)
187    throws java.io.IOException
188  {
189    // 65, 1
190    if (format.equals("json") )
191    {
192      // 65, 30
193      jamonWriter.write("\n  ");
194      // 66, 3
195      {
196        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
197        __jamon__var_0.setFilter(filter);
198        __jamon__var_0.setFormat("json" );
199        __jamon__var_0.renderNoFlush(jamonWriter);
200      }
201      // 66, 68
202      jamonWriter.write("\n  ");
203      // 67, 3
204      return; 
205    }
206    // 68, 7
207    jamonWriter.write("\n");
208    // 69, 1
209    
210ServerManager serverManager = master.getServerManager();
211AssignmentManager assignmentManager = master.getAssignmentManager();
212
213    // 121, 1
214    jamonWriter.write("<!DOCTYPE html>\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>");
215    // 126, 12
216    if (master.isActiveMaster() )
217    {
218      // 126, 43
219      jamonWriter.write("Master: ");
220    }
221    // 126, 51
222    else
223    {
224      // 126, 58
225      jamonWriter.write("Backup Master: ");
226    }
227    // 126, 79
228    jamonWriter.write("\n    ");
229    // 127, 5
230    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
231    // 127, 47
232    jamonWriter.write("</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <link href=\"/static/css/bootstrap.min.css\" rel=\"stylesheet\">\n    <link href=\"/static/css/bootstrap-theme.min.css\" rel=\"stylesheet\">\n    <link href=\"/static/css/hbase.css\" rel=\"stylesheet\">\n  </head>\n\n  <body>\n\n    <div class=\"navbar  navbar-fixed-top navbar-default\">\n        <div class=\"container-fluid\">\n            <div class=\"navbar-header\">\n                <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n                    <span class=\"icon-bar\"></span>\n                    <span class=\"icon-bar\"></span>\n                    <span class=\"icon-bar\"></span>\n                </button>\n                <a class=\"navbar-brand\" href=\"/master-status\"><img src=\"/static/hbase_logo_small.png\" alt=\"HBase Logo\"/></a>\n            </div>\n            <div class=\"collapse navbar-collapse\">\n                <ul class=\"nav navbar-nav\">\n                <li class=\"active\"><a href=\"/master-status\">Home</a></li>\n                <li><a href=\"/tablesDetailed.jsp\">Table Details</a></li>\n                ");
233    // 151, 17
234    if (master.isActiveMaster() )
235    {
236      // 151, 48
237      jamonWriter.write("\n                    <li><a href=\"/procedures.jsp\">Procedures &amp; Locks</a></li>\n                    <li><a href=\"/hbck.jsp\">HBCK Report</a></li>\n                    ");
238      // 154, 21
239      if (master.getConfiguration().getBoolean(QuotaUtil.QUOTA_CONF_KEY, false) )
240      {
241        // 154, 98
242        jamonWriter.write("\n                        <li><a href=\"/quotas.jsp\">Quotas</a></li>\n                    ");
243      }
244      // 156, 27
245      jamonWriter.write("\n                ");
246    }
247    // 157, 23
248    jamonWriter.write("\n                <li><a href=\"/processMaster.jsp\">Process Metrics</a></li>\n                <li><a href=\"/logs/\">Local Logs</a></li>\n                <li><a href=\"/logLevel\">Log Level</a></li>\n                <li><a href=\"/dump\">Debug Dump</a></li>\n                <li><a href=\"/jmx\">Metrics Dump</a></li>\n                <li><a href=\"/prof\">Profiler</a></li>\n                ");
249    // 164, 17
250    if (HBaseConfiguration.isShowConfInServlet())
251    {
252      // 164, 64
253      jamonWriter.write("\n                <li><a href=\"/conf\">HBase Configuration</a></li>\n                ");
254    }
255    // 166, 23
256    jamonWriter.write("\n               </ul>\n            </div><!--/.nav-collapse -->\n        </div>\n    </div>\n\n    <div class=\"container-fluid content\">\n\t");
257    // 173, 2
258    if (master.isActiveMaster() )
259    {
260      // 173, 33
261      jamonWriter.write("\n        <div class=\"row inner_header\">\n            <div class=\"page-header\">\n                <h1>Master <small>");
262      // 176, 35
263      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
264      // 176, 77
265      jamonWriter.write("</small></h1>\n            </div>\n        </div>\n\n        <div class=\"row\">\n        <!-- Various warnings that cluster admins should be aware of -->\n        ");
266      // 182, 9
267      if (JvmVersion.isBadJvmVersion() )
268      {
269        // 182, 45
270        jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Your current JVM version ");
271        // 184, 36
272        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(System.getProperty("java.version")), jamonWriter);
273        // 184, 76
274        jamonWriter.write(" is known to be\n          unstable with HBase. Please see the\n          <a href=\"http://hbase.apache.org/book.html#trouble.log.gc\">HBase Reference Guide</a>\n          for details.\n          </div>\n        ");
275      }
276      // 189, 15
277      jamonWriter.write("\n        ");
278      // 190, 9
279      if (master.isInitialized() && !catalogJanitorEnabled )
280      {
281        // 190, 65
282        jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Please note that your cluster is running with the CatalogJanitor disabled. It can be\n          re-enabled from the hbase shell by running the command 'catalogjanitor_switch true'\n          </div>\n        ");
283      }
284      // 195, 15
285      jamonWriter.write("\n        ");
286      // 196, 9
287      if (master.isInMaintenanceMode() )
288      {
289        // 196, 45
290        jamonWriter.write("\n          <div class=\"alert alert-warning\">\n          Your Master is in maintenance mode. This is because hbase.master.maintenance_mode is\n          set to true. Under the maintenance mode, no quota or no Master coprocessor is loaded.\n          </div>\n        ");
291      }
292      // 201, 15
293      jamonWriter.write("\n        ");
294      // 202, 9
295      if (!master.isBalancerOn() )
296      {
297        // 202, 39
298        jamonWriter.write("\n          <div class=\"alert alert-warning\">\n            The Load Balancer is not enabled which will eventually cause performance degradation\n            in HBase as Regions will not be distributed across all RegionServers. The balancer\n            is only expected to be disabled during rolling upgrade scenarios.\n          </div>\n        ");
299      }
300      // 208, 15
301      jamonWriter.write("\n        ");
302      // 209, 9
303      if (!master.isSplitOrMergeEnabled(MasterSwitchType.SPLIT) )
304      {
305        // 209, 70
306        jamonWriter.write("\n          <div class=\"alert alert-warning\">\n            Region splits are disabled. This may be the result of HBCK aborting while\n            running in repair mode. Manually enable splits from the HBase shell,\n            or re-run HBCK in repair mode.\n          </div>\n        ");
307      }
308      // 215, 15
309      jamonWriter.write("\n        ");
310      // 216, 9
311      if (!master.isSplitOrMergeEnabled(MasterSwitchType.MERGE) )
312      {
313        // 216, 70
314        jamonWriter.write("\n          <div class=\"alert alert-warning\">\n            Region merges are disabled. This may be the result of HBCK aborting while\n            running in repair mode. Manually enable merges from the HBase shell,\n            or re-run HBCK in repair mode.\n          </div>\n        ");
315      }
316      // 222, 15
317      jamonWriter.write("\n        ");
318      // 223, 9
319      if (master.getAssignmentManager() != null )
320      {
321        // 223, 54
322        jamonWriter.write("\n          ");
323        // 224, 11
324        {
325          org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
326          __jamon__var_1.renderNoFlush(jamonWriter, master.getAssignmentManager());
327        }
328        // 224, 92
329        jamonWriter.write("\n        ");
330      }
331      // 225, 15
332      jamonWriter.write("\n        ");
333      // 226, 9
334      if (!master.isInMaintenanceMode() )
335      {
336        // 226, 46
337        jamonWriter.write("\n          ");
338        // 227, 11
339        if (master.getMasterCoprocessorHost().findCoprocessor("RSGroupAdminEndpoint") != null &&
340            serverManager.getOnlineServersList().size() > 0 )
341        {
342          // 228, 63
343          jamonWriter.write("\n            <section>\n              <h2><a name=\"rsgroup\">RSGroup</a></h2>\n              ");
344          // 231, 15
345          {
346            org.apache.hadoop.hbase.tmpl.master.RSGroupListTmpl __jamon__var_2 = new org.apache.hadoop.hbase.tmpl.master.RSGroupListTmpl(this.getTemplateManager());
347            __jamon__var_2.renderNoFlush(jamonWriter, master, serverManager);
348          }
349          // 231, 81
350          jamonWriter.write("\n            </section>\n          ");
351        }
352        // 233, 17
353        jamonWriter.write("\n        ");
354      }
355      // 234, 15
356      jamonWriter.write("\n        <section>\n            <h2><a name=\"regionservers\">Region Servers</a></h2>\n            ");
357      // 237, 13
358      {
359        org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_3 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
360        __jamon__var_3.setServers(servers );
361        __jamon__var_3.renderNoFlush(jamonWriter, master);
362      }
363      // 237, 74
364      jamonWriter.write("\n\n            ");
365      // 239, 13
366      if ((deadServers != null) )
367      {
368        // 239, 42
369        jamonWriter.write("\n                ");
370        // 240, 17
371        {
372          // 240, 17
373          __jamon_innerUnit__deadRegionServers(jamonWriter);
374        }
375        // 240, 40
376        jamonWriter.write("\n            ");
377      }
378      // 241, 19
379      jamonWriter.write("\n        </section>\n        <section>\n            ");
380      // 244, 13
381      {
382        org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_4 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
383        __jamon__var_4.renderNoFlush(jamonWriter, master );
384      }
385      // 244, 58
386      jamonWriter.write("\n        </section>\n        <section>\n            <h2><a name=\"tables\">Tables</a></h2>\n            <div class=\"tabbable\">\n                <ul class=\"nav nav-pills\">\n                    <li class=\"active\">\n                        <a href=\"#tab_userTables\" data-toggle=\"tab\">User Tables</a>\n                    </li>\n                    <li class=\"\">\n                        <a href=\"#tab_catalogTables\" data-toggle=\"tab\">System Tables</a>\n                    </li>\n                    <li class=\"\">\n                        <a href=\"#tab_userSnapshots\" data-toggle=\"tab\">Snapshots</a>\n                    </li>\n                </ul>\n                <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n                    <div class=\"tab-pane active\" id=\"tab_userTables\">\n                        ");
387      // 262, 25
388      if ((metaLocation != null) )
389      {
390        // 262, 55
391        jamonWriter.write("\n                            ");
392        // 263, 29
393        {
394          // 263, 29
395          __jamon_innerUnit__userTables(jamonWriter);
396        }
397        // 263, 45
398        jamonWriter.write("\n                        ");
399      }
400      // 264, 31
401      jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_catalogTables\">\n                        ");
402      // 267, 25
403      if ((metaLocation != null) )
404      {
405        // 267, 55
406        jamonWriter.write("\n                            ");
407        // 268, 29
408        {
409          // 268, 29
410          __jamon_innerUnit__catalogTables(jamonWriter);
411        }
412        // 268, 48
413        jamonWriter.write("\n                        ");
414      }
415      // 269, 31
416      jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n                        ");
417      // 272, 25
418      {
419        // 272, 25
420        __jamon_innerUnit__userSnapshots(jamonWriter);
421      }
422      // 272, 44
423      jamonWriter.write("\n                    </div>\n                </div>\n            </div>\n        </section>\n        <section>\n            <h2><a name=\"peers\">Peers</a></h2>\n            ");
424      // 279, 13
425      {
426        // 279, 13
427        __jamon_innerUnit__peerConfigs(jamonWriter);
428      }
429      // 279, 30
430      jamonWriter.write("\n        </section>\n\t");
431    }
432    // 281, 2
433    else
434    {
435      // 281, 9
436      jamonWriter.write("\n        <section>\n            ");
437      // 283, 13
438      {
439        org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_5 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
440        __jamon__var_5.renderNoFlush(jamonWriter, master );
441      }
442      // 283, 58
443      jamonWriter.write("\n        </section>\n\t");
444    }
445    // 285, 8
446    jamonWriter.write("\n\n\n        <section>\n            ");
447    // 289, 13
448    {
449      org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
450      __jamon__var_6.setFilter(filter);
451      __jamon__var_6.setParent("/master-status" );
452      __jamon__var_6.renderNoFlush(jamonWriter);
453    }
454    // 289, 88
455    jamonWriter.write("\n        </section>\n\n        <section>\n            <h2><a name=\"attributes\">Software Attributes</a></h2>\n            <table id=\"attributes_table\" class=\"table table-striped\">\n                <tr>\n                    <th>Attribute Name</th>\n                    <th>Value</th>\n                    <th>Description</th>\n                </tr>\n                <tr>\n                    <td>HBase Version</td>\n                    <td>");
456    // 302, 25
457    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
458    // 302, 84
459    jamonWriter.write(", revision=");
460    // 302, 95
461    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
462    // 302, 155
463    jamonWriter.write("</td><td>HBase version and revision</td>\n                </tr>\n                <tr>\n                    <td>HBase Compiled</td>\n                    <td>");
464    // 306, 25
465    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
466    // 306, 81
467    jamonWriter.write(", ");
468    // 306, 83
469    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
470    // 306, 139
471    jamonWriter.write("</td>\n                    <td>When HBase version was compiled and by whom</td>\n                </tr>\n                <tr>\n                    <td>HBase Source Checksum</td>\n                    <td>");
472    // 311, 25
473    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
474    // 311, 88
475    jamonWriter.write("</td>\n                    <td>HBase source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Version</td>\n                    <td>");
476    // 316, 25
477    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
478    // 316, 78
479    jamonWriter.write(", revision=");
480    // 316, 89
481    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
482    // 316, 143
483    jamonWriter.write("</td>\n                    <td>Hadoop version and revision</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Compiled</td>\n                    <td>");
484    // 321, 25
485    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
486    // 321, 75
487    jamonWriter.write(", ");
488    // 321, 77
489    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
490    // 321, 127
491    jamonWriter.write("</td>\n                    <td>When Hadoop version was compiled and by whom</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Source Checksum</td>\n                    <td>");
492    // 326, 25
493    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
494    // 326, 82
495    jamonWriter.write("</td>\n                    <td>Hadoop source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Version</td>\n                    <td>");
496    // 331, 25
497    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
498    // 331, 72
499    jamonWriter.write(", revision=");
500    // 331, 83
501    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getRevision()), jamonWriter);
502    // 331, 131
503    jamonWriter.write("</td>\n                    <td>ZooKeeper client version and revision</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Compiled</td>\n                    <td>");
504    // 336, 25
505    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
506    // 336, 74
507    jamonWriter.write("</td>\n                    <td>When ZooKeeper client version was compiled</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Quorum</td>\n                    <td> ");
508    // 342, 26
509    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
510    // 342, 48
511    jamonWriter.write(" </td>\n                    <td>Addresses of all registered ZK servers. For more, see <a href=\"/zk.jsp\">zk dump</a>.</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Base Path</td>\n                    <td> ");
512    // 347, 26
513    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getZNodePaths().baseZNode), jamonWriter);
514    // 347, 79
515    jamonWriter.write("</td>\n                    <td>Root node of this cluster in ZK.</td>\n                </tr>\n                <tr>\n                    <td>Cluster Key</td>\n                    <td> ");
516    // 352, 26
517    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
518    // 352, 48
519    jamonWriter.write(":");
520    // 352, 49
521    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getZNodePaths().baseZNode), jamonWriter);
522    // 352, 102
523    jamonWriter.write("</td>\n                    <td>Key to add this cluster as a peer for replication. Use 'help \"add_peer\"' in the shell for details.</td>\n                </tr>\n                <tr>\n                    <td>HBase Root Directory</td>\n                    <td>");
524    // 357, 25
525    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
526    // 357, 87
527    jamonWriter.write("</td>\n                    <td>Location of HBase home directory</td>\n                </tr>\n                <tr>\n                    <td>HMaster Start Time</td>\n                    <td>");
528    // 362, 25
529    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
530    // 362, 68
531    jamonWriter.write("</td>\n                    <td>Date stamp of when this HMaster was started</td>\n                </tr>\n                ");
532    // 365, 17
533    if (master.isActiveMaster() )
534    {
535      // 365, 48
536      jamonWriter.write("\n\t                <tr>\n\t                    <td>HMaster Active Time</td>\n\t                    <td>");
537      // 368, 26
538      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
539      // 368, 70
540      jamonWriter.write("</td>\n\t                    <td>Date stamp of when this HMaster became active</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>HBase Cluster ID</td>\n\t                    <td>");
541      // 373, 26
542      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
543      // 373, 97
544      jamonWriter.write("</td>\n\t                    <td>Unique identifier generated for each HBase cluster</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>Load average</td>\n\t                    <td>");
545      // 378, 26
546      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerManager() == null ? "0.00" :
547                        StringUtils.limitDecimalTo2(master.getServerManager().getAverageLoad())), jamonWriter);
548      // 379, 98
549      jamonWriter.write("</td>\n\t                    <td>Average number of regions per regionserver. Naive computation.</td>\n\t                </tr>\n\t                ");
550      // 382, 18
551      if (frags != null )
552      {
553        // 382, 39
554        jamonWriter.write("\n\t                <tr>\n\t                    <td>Fragmentation</td>\n\t                    <td>");
555        // 385, 26
556        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get("-TOTAL-") != null ? frags.get("-TOTAL-").intValue() + "%" : "n/a"), jamonWriter);
557        // 385, 108
558        jamonWriter.write("</td>\n\t                    <td>Overall fragmentation of all tables, including hbase:meta</td>\n\t                </tr>\n\t                ");
559      }
560      // 388, 24
561      jamonWriter.write("\n\t                <tr>\n\t                    <td>Coprocessors</td>\n\t                    <td>");
562      // 391, 26
563      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getMasterCoprocessorHost() == null ? "[]" :
564                        java.util.Arrays.toString(master.getMasterCoprocessors())), jamonWriter);
565      // 392, 84
566      jamonWriter.write("</td>\n\t                    <td>Coprocessors currently loaded by the master</td>\n\t                </tr>\n\t                <tr>\n\t                    <td>LoadBalancer</td>\n\t                    <td>");
567      // 397, 26
568      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getLoadBalancerClassName()), jamonWriter);
569      // 397, 65
570      jamonWriter.write("</td>\n\t                    <td>LoadBalancer to be used in the Master</td>\n\t                </tr>\n                ");
571    }
572    // 400, 23
573    jamonWriter.write("\n            </table>\n        </section>\n        </div>\n    </div> <!-- /container -->\n\n    <script src=\"/static/js/jquery.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/jquery.tablesorter.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/bootstrap.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/tab.js\" type=\"text/javascript\"></script>\n    <script>\n    $(document).ready(function()\n        {\n            $(\"#baseStatsTable\").tablesorter();\n            $(\"#memoryStatsTable\").tablesorter();\n            $(\"#requestStatsTable\").tablesorter();\n            $(\"#storeStatsTable\").tablesorter();\n            $(\"#compactionStatsTable\").tablesorter();\n\n            $(\"#userTables\").tablesorter();\n        }\n    );\n    </script>\n  </body>\n</html>\n\n");
574  }
575  
576  
577  // 426, 1
578  private void __jamon_innerUnit__catalogTables(final java.io.Writer jamonWriter)
579    throws java.io.IOException
580  {
581    // 427, 1
582    
583 List<TableDescriptor> sysTables = master.isInitialized() ?
584   master.listTableDescriptorsByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR) : null;
585
586    // 431, 1
587    if ((sysTables != null && sysTables.size() > 0))
588    {
589      // 431, 51
590      jamonWriter.write("\n<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
591      // 435, 5
592      if ((frags != null) )
593      {
594        // 435, 28
595        jamonWriter.write("\n        <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n    ");
596      }
597      // 437, 11
598      jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
599      // 440, 1
600      for (TableDescriptor systemTable : sysTables)
601      {
602        // 440, 48
603        jamonWriter.write("\n<tr>\n");
604        // 442, 1
605        TableName tableName = systemTable.getTableName();
606        // 443, 5
607        jamonWriter.write("<td><a href=\"table.jsp?name=");
608        // 443, 33
609        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
610        // 443, 48
611        jamonWriter.write("\">");
612        // 443, 50
613        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
614        // 443, 65
615        jamonWriter.write("</a></td>\n    ");
616        // 444, 5
617        if ((frags != null))
618        {
619          // 444, 27
620          jamonWriter.write("\n        <td align=\"center\">");
621          // 445, 28
622          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString())
623        .intValue() + "%" : "n/a"), jamonWriter);
624          // 446, 37
625          jamonWriter.write("</td>\n    ");
626        }
627        // 447, 11
628        jamonWriter.write("\n    ");
629        // 448, 5
630        String description = null;
631        if (tableName.equals(TableName.META_TABLE_NAME)){
632            description = "The hbase:meta table holds references to all User Table regions.";
633        } else if (tableName.equals(CanaryTool.DEFAULT_WRITE_TABLE_NAME)){
634            description = "The hbase:canary table is used to sniff the write availbility of"
635              + " each regionserver.";
636        } else if (tableName.equals(AccessControlLists.ACL_TABLE_NAME)){
637            description = "The hbase:acl table holds information about acl.";
638        } else if (tableName.equals(VisibilityConstants.LABELS_TABLE_NAME)){
639            description = "The hbase:labels table holds information about visibility labels.";
640        } else if (tableName.equals(TableName.NAMESPACE_TABLE_NAME)){
641            description = "The hbase:namespace table holds information about namespaces.";
642        } else if (tableName.equals(QuotaUtil.QUOTA_TABLE_NAME)){
643            description = "The hbase:quota table holds quota information about number" +
644            " or size of requests in a given time frame.";
645        } else if (tableName.equals(TableName.valueOf("hbase:rsgroup"))){
646            description = "The hbase:rsgroup table holds information about regionserver groups.";
647        } else if (tableName.equals(TableName.valueOf("hbase:replication"))) {
648            description = "The hbase:replication table tracks cross cluster replication through " +
649            "WAL file offsets.";
650        }
651    
652        // 470, 5
653        jamonWriter.write("<td>");
654        // 470, 9
655        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
656        // 470, 26
657        jamonWriter.write("</td>\n</tr>\n");
658      }
659      // 472, 8
660      jamonWriter.write("\n</table>\n");
661    }
662    // 474, 7
663    jamonWriter.write("\n");
664  }
665  
666  
667  // 590, 1
668  private void __jamon_innerUnit__deadRegionServers(final java.io.Writer jamonWriter)
669    throws java.io.IOException
670  {
671    // 592, 1
672    if ((deadServers != null && deadServers.size() > 0))
673    {
674      // 592, 55
675      jamonWriter.write("\n<h2>Dead Region Servers</h2>\n<table class=\"table table-striped\">\n    <tr>\n        <th></th>\n        <th>ServerName</th>\n        <th>Stop time</th>\n    </tr>\n    ");
676      // 600, 5
677      
678       DeadServer deadServerUtil = master.getServerManager().getDeadServers();
679       ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
680         Arrays.sort(deadServerNames);
681         for (ServerName deadServerName: deadServerNames) {
682    
683      // 606, 5
684      jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
685      // 608, 13
686      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
687      // 608, 33
688      jamonWriter.write("</td>\n        <td>");
689      // 609, 13
690      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
691      // 609, 64
692      jamonWriter.write("</td>\n    </tr>\n    ");
693      // 611, 5
694      
695        }
696    
697      // 614, 5
698      jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
699      // 616, 22
700      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
701      // 616, 46
702      jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
703    }
704    // 620, 7
705    jamonWriter.write("\n");
706  }
707  
708  
709  // 623, 1
710  private void __jamon_innerUnit__peerConfigs(final java.io.Writer jamonWriter)
711    throws java.io.IOException
712  {
713    // 624, 1
714    
715    List<ReplicationPeerDescription> peers = null;
716    if (master.getReplicationPeerManager() != null) {
717        peers = master.getReplicationPeerManager().listPeers(null);
718    }
719
720    // 630, 1
721    jamonWriter.write("<table class=\"table table-striped\">\n    <tr>\n        <th>Peer Id</th>\n        <th>Cluster Key</th>\n        <th>Endpoint</th>\n        <th>State</th>\n        <th>IsSerial</th>\n        <th>Bandwidth</th>\n        <th>ReplicateAll</th>\n        <th>Namespaces</th>\n        <th>Exclude Namespaces</th>\n        <th>Table Cfs</th>\n        <th>Exclude Table Cfs</th>\n    </tr>\n");
722    // 644, 1
723    if ((peers != null && peers.size() > 0))
724    {
725      // 644, 43
726      jamonWriter.write("\n    ");
727      // 645, 5
728      for (ReplicationPeerDescription peer : peers )
729      {
730        // 645, 53
731        jamonWriter.write("\n    ");
732        // 646, 5
733        
734        String peerId = peer.getPeerId();
735        ReplicationPeerConfig peerConfig = peer.getPeerConfig();
736    
737        // 650, 5
738        jamonWriter.write("<tr>\n        <td>");
739        // 651, 13
740        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerId), jamonWriter);
741        // 651, 25
742        jamonWriter.write("</td>\n        <td>");
743        // 652, 13
744        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getClusterKey()), jamonWriter);
745        // 652, 45
746        jamonWriter.write("</td>\n        <td>");
747        // 653, 13
748        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getReplicationEndpointImpl()), jamonWriter);
749        // 653, 58
750        jamonWriter.write("</td>\n        <td>");
751        // 654, 13
752        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peer.isEnabled() ? "ENABLED" : "DISABLED"), jamonWriter);
753        // 654, 60
754        jamonWriter.write("</td>\n        <td>");
755        // 655, 13
756        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.isSerial()), jamonWriter);
757        // 655, 40
758        jamonWriter.write("</td>\n        <td>");
759        // 656, 13
760        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getBandwidth() == 0? "UNLIMITED" : StringUtils.humanReadableInt(peerConfig.getBandwidth())), jamonWriter);
761        // 656, 120
762        jamonWriter.write("</td>\n        <td>");
763        // 657, 13
764        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.replicateAllUserTables()), jamonWriter);
765        // 657, 54
766        jamonWriter.write("</td>\n        <td>\n           ");
767        // 659, 12
768        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getNamespaces() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getNamespaces()).replaceAll(";", "; ")), jamonWriter);
769        // 659, 151
770        jamonWriter.write("\n        </td>\n        <td>\n            ");
771        // 662, 13
772        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getExcludeNamespaces() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getExcludeNamespaces()).replaceAll(";", "; ")), jamonWriter);
773        // 662, 166
774        jamonWriter.write("\n        </td>\n        <td>\n           ");
775        // 665, 12
776        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getTableCFsMap() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getTableCFsMap()).replaceAll(";", "; ")), jamonWriter);
777        // 665, 153
778        jamonWriter.write("\n        </td>\n        <td>\n           ");
779        // 668, 12
780        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getExcludeTableCFsMap() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getExcludeTableCFsMap()).replaceAll(";", "; ")), jamonWriter);
781        // 668, 167
782        jamonWriter.write("\n        </td>\n    </tr>\n    ");
783      }
784      // 671, 12
785      jamonWriter.write("\n");
786    }
787    // 672, 7
788    jamonWriter.write("\n<tr><td>Total: ");
789    // 673, 16
790    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf((peers != null) ? peers.size() : 0), jamonWriter);
791    // 673, 56
792    jamonWriter.write("</td></tr>\n</table>\n");
793  }
794  
795  
796  // 561, 1
797  private void __jamon_innerUnit__userSnapshots(final java.io.Writer jamonWriter)
798    throws java.io.IOException
799  {
800    // 562, 1
801    
802   List<SnapshotDescription> snapshots = master.isInitialized() ?
803     master.getSnapshotManager().getCompletedSnapshots() : null;
804
805    // 566, 1
806    if ((snapshots != null && snapshots.size() > 0))
807    {
808      // 566, 51
809      jamonWriter.write("\n<table class=\"table table-striped\">\n    <tr>\n        <th>Snapshot Name</th>\n        <th>Table</th>\n        <th>Creation Time</th>\n    </tr>\n    ");
810      // 573, 5
811      for (SnapshotDescription snapshotDesc : snapshots)
812      {
813        // 573, 57
814        jamonWriter.write("\n    ");
815        // 574, 5
816        
817        TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
818    
819        // 577, 5
820        jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
821        // 578, 40
822        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
823        // 578, 68
824        jamonWriter.write("\">");
825        // 578, 70
826        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
827        // 578, 98
828        jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
829        // 579, 37
830        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
831        // 579, 74
832        jamonWriter.write("\">");
833        // 579, 76
834        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
835        // 579, 113
836        jamonWriter.write("</a>\n        </td>\n        <td>");
837        // 581, 13
838        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
839        // 581, 59
840        jamonWriter.write("</td>\n    </tr>\n    ");
841      }
842      // 583, 12
843      jamonWriter.write("\n    <p>");
844      // 584, 8
845      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
846      // 584, 30
847      jamonWriter.write(" snapshot(s) in set. [<a href=\"/snapshotsStats.jsp\">Snapshot Storefile stats</a>]</p>\n</table>\n");
848    }
849    // 586, 7
850    jamonWriter.write("\n");
851  }
852  
853  
854  // 477, 1
855  private void __jamon_innerUnit__userTables(final java.io.Writer jamonWriter)
856    throws java.io.IOException
857  {
858    // 478, 1
859    
860   List<TableDescriptor> tables = new ArrayList<TableDescriptor>();
861   String errorMessage = getUserTables(master, tables);
862
863    // 482, 1
864    if ((tables.size() == 0 && errorMessage != null))
865    {
866      // 482, 52
867      jamonWriter.write("\n<p> ");
868      // 483, 5
869      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(errorMessage), jamonWriter);
870      // 483, 23
871      jamonWriter.write(" </p>\n");
872    }
873    // 484, 7
874    jamonWriter.write("\n\n");
875    // 486, 1
876    if ((tables != null && tables.size() > 0))
877    {
878      // 486, 45
879      jamonWriter.write("\n<table id=\"userTables\" class=\"tablesorter table table-striped\">\n<thead>\n    <tr>\n        <th style=\"vertical-align: middle;\" rowspan=\"2\">Namespace</th>\n        <th style=\"vertical-align: middle;\" rowspan=\"2\">Name</th>\n        ");
880      // 492, 9
881      if ((frags != null) )
882      {
883        // 492, 32
884        jamonWriter.write("\n            <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n        ");
885      }
886      // 494, 15
887      jamonWriter.write("\n        <th style=\"vertical-align:middle;\" rowspan=\"2\">State</th>\n        <th style=\"text-align: center\" colspan=\"8\">Regions</th>\n        <th style=\"vertical-align:middle;\" rowspan=\"2\">Description</th>\n    </tr>\n    <tr>\n        <th>OPEN</th>\n        <th>OPENING</th>\n        <th>CLOSED</th>\n        <th>CLOSING</th>\n        <th>OFFLINE</th>\n        <th>FAILED</th>\n        <th>SPLIT</th>\n        <th>Other</th>\n    </tr>\n</thead>\n<tbody>\n    ");
888      // 511, 5
889      for (TableDescriptor desc : tables)
890      {
891        // 511, 42
892        jamonWriter.write("\n    ");
893        // 512, 5
894        
895      HTableDescriptor htDesc = new HTableDescriptor(desc);
896      TableName tableName = htDesc.getTableName();
897      TableState tableState = master.getTableStateManager().getTableState(tableName);
898      Map<RegionState.State, List<RegionInfo>> tableRegions =
899          master.getAssignmentManager().getRegionStates()
900            .getRegionByStateOfTable(tableName);
901      int openRegionsCount = tableRegions.get(RegionState.State.OPEN).size();
902      int openingRegionsCount = tableRegions.get(RegionState.State.OPENING).size();
903      int closedRegionsCount = tableRegions.get(RegionState.State.CLOSED).size();
904      int closingRegionsCount = tableRegions.get(RegionState.State.CLOSING).size();
905      int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
906      int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
907      int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
908             + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
909      int otherRegionsCount = 0;
910      for (List<RegionInfo> list: tableRegions.values()) {
911         otherRegionsCount += list.size();
912      }
913      // now subtract known states
914      otherRegionsCount = otherRegionsCount - openRegionsCount
915                     - failedRegionsCount - offlineRegionsCount
916                     - splitRegionsCount - openingRegionsCount
917                     - closedRegionsCount - closingRegionsCount;
918    
919        // 537, 5
920        jamonWriter.write("<tr>\n        <td>");
921        // 538, 13
922        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNamespaceAsString()), jamonWriter);
923        // 538, 51
924        jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
925        // 539, 36
926        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
927        // 539, 69
928        jamonWriter.write(">");
929        // 539, 70
930        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getQualifierAsString()), jamonWriter);
931        // 539, 108
932        jamonWriter.write("</a> </td>\n        ");
933        // 540, 9
934        if ((frags != null) )
935        {
936          // 540, 32
937          jamonWriter.write("\n            <td align=\"center\">");
938          // 541, 32
939          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
940          // 541, 150
941          jamonWriter.write("</td>\n        ");
942        }
943        // 542, 15
944        jamonWriter.write("\n        <td>");
945        // 543, 13
946        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableState.getState()), jamonWriter);
947        // 543, 40
948        jamonWriter.write("</td>\n        <td>");
949        // 544, 13
950        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
951        // 544, 35
952        jamonWriter.write("</td>\n        ");
953        // 545, 9
954        if ((openingRegionsCount > 0) )
955        {
956          // 545, 42
957          jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
958          // 545, 72
959          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
960          // 545, 105
961          jamonWriter.write("&state=OPENING\">");
962          // 545, 121
963          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
964          // 545, 146
965          jamonWriter.write("</td> ");
966        }
967        // 545, 152
968        else
969        {
970          // 545, 159
971          jamonWriter.write("<td>");
972          // 545, 163
973          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
974          // 545, 188
975          jamonWriter.write("</td> ");
976        }
977        // 545, 200
978        jamonWriter.write("\n        <td>");
979        // 546, 13
980        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closedRegionsCount), jamonWriter);
981        // 546, 37
982        jamonWriter.write("</td>\n        ");
983        // 547, 9
984        if ((closingRegionsCount > 0) )
985        {
986          // 547, 42
987          jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
988          // 547, 72
989          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
990          // 547, 105
991          jamonWriter.write("&state=CLOSING\">");
992          // 547, 121
993          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
994          // 547, 146
995          jamonWriter.write("</td> ");
996        }
997        // 547, 152
998        else
999        {
1000          // 547, 159
1001          jamonWriter.write("<td>");
1002          // 547, 163
1003          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
1004          // 547, 188
1005          jamonWriter.write("</td> ");
1006        }
1007        // 547, 200
1008        jamonWriter.write("\n        <td>");
1009        // 548, 13
1010        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
1011        // 548, 38
1012        jamonWriter.write("</td>\n        <td>");
1013        // 549, 13
1014        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
1015        // 549, 37
1016        jamonWriter.write("</td>\n        <td>");
1017        // 550, 13
1018        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
1019        // 550, 36
1020        jamonWriter.write("</td>\n        <td>");
1021        // 551, 13
1022        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
1023        // 551, 36
1024        jamonWriter.write("</td>\n        <td>");
1025        // 552, 13
1026        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
1027        // 552, 52
1028        jamonWriter.write("</td>\n    </tr>\n    ");
1029      }
1030      // 554, 12
1031      jamonWriter.write("\n    <p>");
1032      // 555, 8
1033      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.size()), jamonWriter);
1034      // 555, 27
1035      jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</tbody>\n</table>\n");
1036    }
1037    // 558, 7
1038    jamonWriter.write("\n");
1039  }
1040  
1041  
1042}