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    }
239    // 154, 23
240    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                ");
241    // 161, 17
242    if (HBaseConfiguration.isShowConfInServlet())
243    {
244      // 161, 64
245      jamonWriter.write("\n                <li><a href=\"/conf\">HBase Configuration</a></li>\n                ");
246    }
247    // 163, 23
248    jamonWriter.write("\n               </ul>\n            </div><!--/.nav-collapse -->\n        </div>\n    </div>\n\n    <div class=\"container-fluid content\">\n\t");
249    // 170, 2
250    if (master.isActiveMaster() )
251    {
252      // 170, 33
253      jamonWriter.write("\n        <div class=\"row inner_header\">\n            <div class=\"page-header\">\n                <h1>Master <small>");
254      // 173, 35
255      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
256      // 173, 77
257      jamonWriter.write("</small></h1>\n            </div>\n        </div>\n\n        <div class=\"row\">\n        <!-- Various warnings that cluster admins should be aware of -->\n        ");
258      // 179, 9
259      if (JvmVersion.isBadJvmVersion() )
260      {
261        // 179, 45
262        jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Your current JVM version ");
263        // 181, 36
264        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(System.getProperty("java.version")), jamonWriter);
265        // 181, 76
266        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        ");
267      }
268      // 186, 15
269      jamonWriter.write("\n        ");
270      // 187, 9
271      if (master.isInitialized() && !catalogJanitorEnabled )
272      {
273        // 187, 65
274        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        ");
275      }
276      // 192, 15
277      jamonWriter.write("\n        ");
278      // 193, 9
279      if (master.isInMaintenanceMode() )
280      {
281        // 193, 45
282        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        ");
283      }
284      // 198, 15
285      jamonWriter.write("\n        ");
286      // 199, 9
287      if (!master.isBalancerOn() )
288      {
289        // 199, 39
290        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        ");
291      }
292      // 205, 15
293      jamonWriter.write("\n        ");
294      // 206, 9
295      if (!master.isSplitOrMergeEnabled(MasterSwitchType.SPLIT) )
296      {
297        // 206, 70
298        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        ");
299      }
300      // 212, 15
301      jamonWriter.write("\n        ");
302      // 213, 9
303      if (!master.isSplitOrMergeEnabled(MasterSwitchType.MERGE) )
304      {
305        // 213, 70
306        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        ");
307      }
308      // 219, 15
309      jamonWriter.write("\n        ");
310      // 220, 9
311      if (master.getAssignmentManager() != null )
312      {
313        // 220, 54
314        jamonWriter.write("\n          ");
315        // 221, 11
316        {
317          org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
318          __jamon__var_1.renderNoFlush(jamonWriter, master.getAssignmentManager());
319        }
320        // 221, 92
321        jamonWriter.write("\n        ");
322      }
323      // 222, 15
324      jamonWriter.write("\n        ");
325      // 223, 9
326      if (!master.isInMaintenanceMode() )
327      {
328        // 223, 46
329        jamonWriter.write("\n          ");
330        // 224, 11
331        if (master.getMasterCoprocessorHost().findCoprocessor("RSGroupAdminEndpoint") != null &&
332            serverManager.getOnlineServersList().size() > 0 )
333        {
334          // 225, 63
335          jamonWriter.write("\n            <section>\n              <h2><a name=\"rsgroup\">RSGroup</a></h2>\n              ");
336          // 228, 15
337          {
338            org.apache.hadoop.hbase.tmpl.master.RSGroupListTmpl __jamon__var_2 = new org.apache.hadoop.hbase.tmpl.master.RSGroupListTmpl(this.getTemplateManager());
339            __jamon__var_2.renderNoFlush(jamonWriter, master, serverManager);
340          }
341          // 228, 81
342          jamonWriter.write("\n            </section>\n          ");
343        }
344        // 230, 17
345        jamonWriter.write("\n        ");
346      }
347      // 231, 15
348      jamonWriter.write("\n        <section>\n            <h2><a name=\"regionservers\">Region Servers</a></h2>\n            ");
349      // 234, 13
350      {
351        org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_3 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
352        __jamon__var_3.setServers(servers );
353        __jamon__var_3.renderNoFlush(jamonWriter, master);
354      }
355      // 234, 74
356      jamonWriter.write("\n\n            ");
357      // 236, 13
358      if ((deadServers != null) )
359      {
360        // 236, 42
361        jamonWriter.write("\n                ");
362        // 237, 17
363        {
364          // 237, 17
365          __jamon_innerUnit__deadRegionServers(jamonWriter);
366        }
367        // 237, 40
368        jamonWriter.write("\n            ");
369      }
370      // 238, 19
371      jamonWriter.write("\n        </section>\n        <section>\n            ");
372      // 241, 13
373      {
374        org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_4 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
375        __jamon__var_4.renderNoFlush(jamonWriter, master );
376      }
377      // 241, 58
378      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                        ");
379      // 259, 25
380      if ((metaLocation != null) )
381      {
382        // 259, 55
383        jamonWriter.write("\n                            ");
384        // 260, 29
385        {
386          // 260, 29
387          __jamon_innerUnit__userTables(jamonWriter);
388        }
389        // 260, 45
390        jamonWriter.write("\n                        ");
391      }
392      // 261, 31
393      jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_catalogTables\">\n                        ");
394      // 264, 25
395      if ((metaLocation != null) )
396      {
397        // 264, 55
398        jamonWriter.write("\n                            ");
399        // 265, 29
400        {
401          // 265, 29
402          __jamon_innerUnit__catalogTables(jamonWriter);
403        }
404        // 265, 48
405        jamonWriter.write("\n                        ");
406      }
407      // 266, 31
408      jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n                        ");
409      // 269, 25
410      {
411        // 269, 25
412        __jamon_innerUnit__userSnapshots(jamonWriter);
413      }
414      // 269, 44
415      jamonWriter.write("\n                    </div>\n                </div>\n            </div>\n        </section>\n        <section>\n            <h2><a name=\"peers\">Peers</a></h2>\n            ");
416      // 276, 13
417      {
418        // 276, 13
419        __jamon_innerUnit__peerConfigs(jamonWriter);
420      }
421      // 276, 30
422      jamonWriter.write("\n        </section>\n\t");
423    }
424    // 278, 2
425    else
426    {
427      // 278, 9
428      jamonWriter.write("\n        <section>\n            ");
429      // 280, 13
430      {
431        org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_5 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
432        __jamon__var_5.renderNoFlush(jamonWriter, master );
433      }
434      // 280, 58
435      jamonWriter.write("\n        </section>\n\t");
436    }
437    // 282, 8
438    jamonWriter.write("\n\n\n        <section>\n            ");
439    // 286, 13
440    {
441      org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
442      __jamon__var_6.setFilter(filter);
443      __jamon__var_6.setParent("/master-status" );
444      __jamon__var_6.renderNoFlush(jamonWriter);
445    }
446    // 286, 88
447    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>");
448    // 299, 25
449    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
450    // 299, 84
451    jamonWriter.write(", revision=");
452    // 299, 95
453    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
454    // 299, 155
455    jamonWriter.write("</td><td>HBase version and revision</td>\n                </tr>\n                <tr>\n                    <td>HBase Compiled</td>\n                    <td>");
456    // 303, 25
457    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
458    // 303, 81
459    jamonWriter.write(", ");
460    // 303, 83
461    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
462    // 303, 139
463    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>");
464    // 308, 25
465    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
466    // 308, 88
467    jamonWriter.write("</td>\n                    <td>HBase source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Version</td>\n                    <td>");
468    // 313, 25
469    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
470    // 313, 78
471    jamonWriter.write(", revision=");
472    // 313, 89
473    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
474    // 313, 143
475    jamonWriter.write("</td>\n                    <td>Hadoop version and revision</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Compiled</td>\n                    <td>");
476    // 318, 25
477    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
478    // 318, 75
479    jamonWriter.write(", ");
480    // 318, 77
481    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
482    // 318, 127
483    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>");
484    // 323, 25
485    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
486    // 323, 82
487    jamonWriter.write("</td>\n                    <td>Hadoop source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Version</td>\n                    <td>");
488    // 328, 25
489    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
490    // 328, 72
491    jamonWriter.write(", revision=");
492    // 328, 83
493    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getRevision()), jamonWriter);
494    // 328, 131
495    jamonWriter.write("</td>\n                    <td>ZooKeeper client version and revision</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Compiled</td>\n                    <td>");
496    // 333, 25
497    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
498    // 333, 74
499    jamonWriter.write("</td>\n                    <td>When ZooKeeper client version was compiled</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Quorum</td>\n                    <td> ");
500    // 339, 26
501    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
502    // 339, 48
503    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> ");
504    // 344, 26
505    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getZNodePaths().baseZNode), jamonWriter);
506    // 344, 79
507    jamonWriter.write("</td>\n                    <td>Root node of this cluster in ZK.</td>\n                </tr>\n                <tr>\n                    <td>Cluster Key</td>\n                    <td> ");
508    // 349, 26
509    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
510    // 349, 48
511    jamonWriter.write(":");
512    // 349, 49
513    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getZNodePaths().baseZNode), jamonWriter);
514    // 349, 102
515    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>");
516    // 354, 25
517    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
518    // 354, 87
519    jamonWriter.write("</td>\n                    <td>Location of HBase home directory</td>\n                </tr>\n                <tr>\n                    <td>HMaster Start Time</td>\n                    <td>");
520    // 359, 25
521    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
522    // 359, 68
523    jamonWriter.write("</td>\n                    <td>Date stamp of when this HMaster was started</td>\n                </tr>\n                ");
524    // 362, 17
525    if (master.isActiveMaster() )
526    {
527      // 362, 48
528      jamonWriter.write("\n\t                <tr>\n\t                    <td>HMaster Active Time</td>\n\t                    <td>");
529      // 365, 26
530      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
531      // 365, 70
532      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>");
533      // 370, 26
534      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
535      // 370, 97
536      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>");
537      // 375, 26
538      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerManager() == null ? "0.00" :
539                        StringUtils.limitDecimalTo2(master.getServerManager().getAverageLoad())), jamonWriter);
540      // 376, 98
541      jamonWriter.write("</td>\n\t                    <td>Average number of regions per regionserver. Naive computation.</td>\n\t                </tr>\n\t                ");
542      // 379, 18
543      if (frags != null )
544      {
545        // 379, 39
546        jamonWriter.write("\n\t                <tr>\n\t                    <td>Fragmentation</td>\n\t                    <td>");
547        // 382, 26
548        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get("-TOTAL-") != null ? frags.get("-TOTAL-").intValue() + "%" : "n/a"), jamonWriter);
549        // 382, 108
550        jamonWriter.write("</td>\n\t                    <td>Overall fragmentation of all tables, including hbase:meta</td>\n\t                </tr>\n\t                ");
551      }
552      // 385, 24
553      jamonWriter.write("\n\t                <tr>\n\t                    <td>Coprocessors</td>\n\t                    <td>");
554      // 388, 26
555      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getMasterCoprocessorHost() == null ? "[]" :
556                        java.util.Arrays.toString(master.getMasterCoprocessors())), jamonWriter);
557      // 389, 84
558      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>");
559      // 394, 26
560      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getLoadBalancerClassName()), jamonWriter);
561      // 394, 65
562      jamonWriter.write("</td>\n\t                    <td>LoadBalancer to be used in the Master</td>\n\t                </tr>\n                ");
563    }
564    // 397, 23
565    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");
566  }
567  
568  
569  // 423, 1
570  private void __jamon_innerUnit__catalogTables(final java.io.Writer jamonWriter)
571    throws java.io.IOException
572  {
573    // 424, 1
574    
575 List<TableDescriptor> sysTables = master.isInitialized() ?
576   master.listTableDescriptorsByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR) : null;
577
578    // 428, 1
579    if ((sysTables != null && sysTables.size() > 0))
580    {
581      // 428, 51
582      jamonWriter.write("\n<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
583      // 432, 5
584      if ((frags != null) )
585      {
586        // 432, 28
587        jamonWriter.write("\n        <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n    ");
588      }
589      // 434, 11
590      jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
591      // 437, 1
592      for (TableDescriptor systemTable : sysTables)
593      {
594        // 437, 48
595        jamonWriter.write("\n<tr>\n");
596        // 439, 1
597        TableName tableName = systemTable.getTableName();
598        // 440, 5
599        jamonWriter.write("<td><a href=\"table.jsp?name=");
600        // 440, 33
601        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
602        // 440, 48
603        jamonWriter.write("\">");
604        // 440, 50
605        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
606        // 440, 65
607        jamonWriter.write("</a></td>\n    ");
608        // 441, 5
609        if ((frags != null))
610        {
611          // 441, 27
612          jamonWriter.write("\n        <td align=\"center\">");
613          // 442, 28
614          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString())
615        .intValue() + "%" : "n/a"), jamonWriter);
616          // 443, 37
617          jamonWriter.write("</td>\n    ");
618        }
619        // 444, 11
620        jamonWriter.write("\n    ");
621        // 445, 5
622        String description = null;
623        if (tableName.equals(TableName.META_TABLE_NAME)){
624            description = "The hbase:meta table holds references to all User Table regions.";
625        } else if (tableName.equals(CanaryTool.DEFAULT_WRITE_TABLE_NAME)){
626            description = "The hbase:canary table is used to sniff the write availbility of"
627              + " each regionserver.";
628        } else if (tableName.equals(AccessControlLists.ACL_TABLE_NAME)){
629            description = "The hbase:acl table holds information about acl.";
630        } else if (tableName.equals(VisibilityConstants.LABELS_TABLE_NAME)){
631            description = "The hbase:labels table holds information about visibility labels.";
632        } else if (tableName.equals(TableName.NAMESPACE_TABLE_NAME)){
633            description = "The hbase:namespace table holds information about namespaces.";
634        } else if (tableName.equals(QuotaUtil.QUOTA_TABLE_NAME)){
635            description = "The hbase:quota table holds quota information about number" +
636            " or size of requests in a given time frame.";
637        } else if (tableName.equals(TableName.valueOf("hbase:rsgroup"))){
638            description = "The hbase:rsgroup table holds information about regionserver groups.";
639        } else if (tableName.equals(TableName.valueOf("hbase:replication"))) {
640            description = "The hbase:replication table tracks cross cluster replication through " +
641            "WAL file offsets.";
642        }
643    
644        // 467, 5
645        jamonWriter.write("<td>");
646        // 467, 9
647        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
648        // 467, 26
649        jamonWriter.write("</td>\n</tr>\n");
650      }
651      // 469, 8
652      jamonWriter.write("\n</table>\n");
653    }
654    // 471, 7
655    jamonWriter.write("\n");
656  }
657  
658  
659  // 587, 1
660  private void __jamon_innerUnit__deadRegionServers(final java.io.Writer jamonWriter)
661    throws java.io.IOException
662  {
663    // 589, 1
664    if ((deadServers != null && deadServers.size() > 0))
665    {
666      // 589, 55
667      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    ");
668      // 597, 5
669      
670       DeadServer deadServerUtil = master.getServerManager().getDeadServers();
671       ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
672         Arrays.sort(deadServerNames);
673         for (ServerName deadServerName: deadServerNames) {
674    
675      // 603, 5
676      jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
677      // 605, 13
678      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
679      // 605, 33
680      jamonWriter.write("</td>\n        <td>");
681      // 606, 13
682      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
683      // 606, 64
684      jamonWriter.write("</td>\n    </tr>\n    ");
685      // 608, 5
686      
687        }
688    
689      // 611, 5
690      jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
691      // 613, 22
692      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
693      // 613, 46
694      jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
695    }
696    // 617, 7
697    jamonWriter.write("\n");
698  }
699  
700  
701  // 620, 1
702  private void __jamon_innerUnit__peerConfigs(final java.io.Writer jamonWriter)
703    throws java.io.IOException
704  {
705    // 621, 1
706    
707    List<ReplicationPeerDescription> peers = null;
708    if (master.getReplicationPeerManager() != null) {
709        peers = master.getReplicationPeerManager().listPeers(null);
710    }
711
712    // 627, 1
713    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");
714    // 641, 1
715    if ((peers != null && peers.size() > 0))
716    {
717      // 641, 43
718      jamonWriter.write("\n    ");
719      // 642, 5
720      for (ReplicationPeerDescription peer : peers )
721      {
722        // 642, 53
723        jamonWriter.write("\n    ");
724        // 643, 5
725        
726        String peerId = peer.getPeerId();
727        ReplicationPeerConfig peerConfig = peer.getPeerConfig();
728    
729        // 647, 5
730        jamonWriter.write("<tr>\n        <td>");
731        // 648, 13
732        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerId), jamonWriter);
733        // 648, 25
734        jamonWriter.write("</td>\n        <td>");
735        // 649, 13
736        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getClusterKey()), jamonWriter);
737        // 649, 45
738        jamonWriter.write("</td>\n        <td>");
739        // 650, 13
740        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getReplicationEndpointImpl()), jamonWriter);
741        // 650, 58
742        jamonWriter.write("</td>\n        <td>");
743        // 651, 13
744        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peer.isEnabled() ? "ENABLED" : "DISABLED"), jamonWriter);
745        // 651, 60
746        jamonWriter.write("</td>\n        <td>");
747        // 652, 13
748        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.isSerial()), jamonWriter);
749        // 652, 40
750        jamonWriter.write("</td>\n        <td>");
751        // 653, 13
752        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getBandwidth() == 0? "UNLIMITED" : StringUtils.humanReadableInt(peerConfig.getBandwidth())), jamonWriter);
753        // 653, 120
754        jamonWriter.write("</td>\n        <td>");
755        // 654, 13
756        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.replicateAllUserTables()), jamonWriter);
757        // 654, 54
758        jamonWriter.write("</td>\n        <td>\n           ");
759        // 656, 12
760        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getNamespaces() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getNamespaces()).replaceAll(";", "; ")), jamonWriter);
761        // 656, 151
762        jamonWriter.write("\n        </td>\n        <td>\n            ");
763        // 659, 13
764        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getExcludeNamespaces() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getExcludeNamespaces()).replaceAll(";", "; ")), jamonWriter);
765        // 659, 166
766        jamonWriter.write("\n        </td>\n        <td>\n           ");
767        // 662, 12
768        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getTableCFsMap() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getTableCFsMap()).replaceAll(";", "; ")), jamonWriter);
769        // 662, 153
770        jamonWriter.write("\n        </td>\n        <td>\n           ");
771        // 665, 12
772        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(peerConfig.getExcludeTableCFsMap() == null ? "" : ReplicationPeerConfigUtil.convertToString(peerConfig.getExcludeTableCFsMap()).replaceAll(";", "; ")), jamonWriter);
773        // 665, 167
774        jamonWriter.write("\n        </td>\n    </tr>\n    ");
775      }
776      // 668, 12
777      jamonWriter.write("\n");
778    }
779    // 669, 7
780    jamonWriter.write("\n<tr><td>Total: ");
781    // 670, 16
782    org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf((peers != null) ? peers.size() : 0), jamonWriter);
783    // 670, 56
784    jamonWriter.write("</td></tr>\n</table>\n");
785  }
786  
787  
788  // 558, 1
789  private void __jamon_innerUnit__userSnapshots(final java.io.Writer jamonWriter)
790    throws java.io.IOException
791  {
792    // 559, 1
793    
794   List<SnapshotDescription> snapshots = master.isInitialized() ?
795     master.getSnapshotManager().getCompletedSnapshots() : null;
796
797    // 563, 1
798    if ((snapshots != null && snapshots.size() > 0))
799    {
800      // 563, 51
801      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    ");
802      // 570, 5
803      for (SnapshotDescription snapshotDesc : snapshots)
804      {
805        // 570, 57
806        jamonWriter.write("\n    ");
807        // 571, 5
808        
809        TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
810    
811        // 574, 5
812        jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
813        // 575, 40
814        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
815        // 575, 68
816        jamonWriter.write("\">");
817        // 575, 70
818        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
819        // 575, 98
820        jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
821        // 576, 37
822        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
823        // 576, 74
824        jamonWriter.write("\">");
825        // 576, 76
826        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
827        // 576, 113
828        jamonWriter.write("</a>\n        </td>\n        <td>");
829        // 578, 13
830        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
831        // 578, 59
832        jamonWriter.write("</td>\n    </tr>\n    ");
833      }
834      // 580, 12
835      jamonWriter.write("\n    <p>");
836      // 581, 8
837      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
838      // 581, 30
839      jamonWriter.write(" snapshot(s) in set. [<a href=\"/snapshotsStats.jsp\">Snapshot Storefile stats</a>]</p>\n</table>\n");
840    }
841    // 583, 7
842    jamonWriter.write("\n");
843  }
844  
845  
846  // 474, 1
847  private void __jamon_innerUnit__userTables(final java.io.Writer jamonWriter)
848    throws java.io.IOException
849  {
850    // 475, 1
851    
852   List<TableDescriptor> tables = new ArrayList<TableDescriptor>();
853   String errorMessage = getUserTables(master, tables);
854
855    // 479, 1
856    if ((tables.size() == 0 && errorMessage != null))
857    {
858      // 479, 52
859      jamonWriter.write("\n<p> ");
860      // 480, 5
861      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(errorMessage), jamonWriter);
862      // 480, 23
863      jamonWriter.write(" </p>\n");
864    }
865    // 481, 7
866    jamonWriter.write("\n\n");
867    // 483, 1
868    if ((tables != null && tables.size() > 0))
869    {
870      // 483, 45
871      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        ");
872      // 489, 9
873      if ((frags != null) )
874      {
875        // 489, 32
876        jamonWriter.write("\n            <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n        ");
877      }
878      // 491, 15
879      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    ");
880      // 508, 5
881      for (TableDescriptor desc : tables)
882      {
883        // 508, 42
884        jamonWriter.write("\n    ");
885        // 509, 5
886        
887      HTableDescriptor htDesc = new HTableDescriptor(desc);
888      TableName tableName = htDesc.getTableName();
889      TableState tableState = master.getTableStateManager().getTableState(tableName);
890      Map<RegionState.State, List<RegionInfo>> tableRegions =
891          master.getAssignmentManager().getRegionStates()
892            .getRegionByStateOfTable(tableName);
893      int openRegionsCount = tableRegions.get(RegionState.State.OPEN).size();
894      int openingRegionsCount = tableRegions.get(RegionState.State.OPENING).size();
895      int closedRegionsCount = tableRegions.get(RegionState.State.CLOSED).size();
896      int closingRegionsCount = tableRegions.get(RegionState.State.CLOSING).size();
897      int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
898      int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
899      int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
900             + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
901      int otherRegionsCount = 0;
902      for (List<RegionInfo> list: tableRegions.values()) {
903         otherRegionsCount += list.size();
904      }
905      // now subtract known states
906      otherRegionsCount = otherRegionsCount - openRegionsCount
907                     - failedRegionsCount - offlineRegionsCount
908                     - splitRegionsCount - openingRegionsCount
909                     - closedRegionsCount - closingRegionsCount;
910    
911        // 534, 5
912        jamonWriter.write("<tr>\n        <td>");
913        // 535, 13
914        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNamespaceAsString()), jamonWriter);
915        // 535, 51
916        jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
917        // 536, 36
918        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
919        // 536, 69
920        jamonWriter.write(">");
921        // 536, 70
922        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getQualifierAsString()), jamonWriter);
923        // 536, 108
924        jamonWriter.write("</a> </td>\n        ");
925        // 537, 9
926        if ((frags != null) )
927        {
928          // 537, 32
929          jamonWriter.write("\n            <td align=\"center\">");
930          // 538, 32
931          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
932          // 538, 150
933          jamonWriter.write("</td>\n        ");
934        }
935        // 539, 15
936        jamonWriter.write("\n        <td>");
937        // 540, 13
938        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableState.getState()), jamonWriter);
939        // 540, 40
940        jamonWriter.write("</td>\n        <td>");
941        // 541, 13
942        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
943        // 541, 35
944        jamonWriter.write("</td>\n        ");
945        // 542, 9
946        if ((openingRegionsCount > 0) )
947        {
948          // 542, 42
949          jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
950          // 542, 72
951          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
952          // 542, 105
953          jamonWriter.write("&state=OPENING\">");
954          // 542, 121
955          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
956          // 542, 146
957          jamonWriter.write("</td> ");
958        }
959        // 542, 152
960        else
961        {
962          // 542, 159
963          jamonWriter.write("<td>");
964          // 542, 163
965          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openingRegionsCount), jamonWriter);
966          // 542, 188
967          jamonWriter.write("</td> ");
968        }
969        // 542, 200
970        jamonWriter.write("\n        <td>");
971        // 543, 13
972        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closedRegionsCount), jamonWriter);
973        // 543, 37
974        jamonWriter.write("</td>\n        ");
975        // 544, 9
976        if ((closingRegionsCount > 0) )
977        {
978          // 544, 42
979          jamonWriter.write(" <td><a href=\"/rits.jsp?table=");
980          // 544, 72
981          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
982          // 544, 105
983          jamonWriter.write("&state=CLOSING\">");
984          // 544, 121
985          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
986          // 544, 146
987          jamonWriter.write("</td> ");
988        }
989        // 544, 152
990        else
991        {
992          // 544, 159
993          jamonWriter.write("<td>");
994          // 544, 163
995          org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(closingRegionsCount), jamonWriter);
996          // 544, 188
997          jamonWriter.write("</td> ");
998        }
999        // 544, 200
1000        jamonWriter.write("\n        <td>");
1001        // 545, 13
1002        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
1003        // 545, 38
1004        jamonWriter.write("</td>\n        <td>");
1005        // 546, 13
1006        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
1007        // 546, 37
1008        jamonWriter.write("</td>\n        <td>");
1009        // 547, 13
1010        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
1011        // 547, 36
1012        jamonWriter.write("</td>\n        <td>");
1013        // 548, 13
1014        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
1015        // 548, 36
1016        jamonWriter.write("</td>\n        <td>");
1017        // 549, 13
1018        org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
1019        // 549, 52
1020        jamonWriter.write("</td>\n    </tr>\n    ");
1021      }
1022      // 551, 12
1023      jamonWriter.write("\n    <p>");
1024      // 552, 8
1025      org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.size()), jamonWriter);
1026      // 552, 27
1027      jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</tbody>\n</table>\n");
1028    }
1029    // 555, 7
1030    jamonWriter.write("\n");
1031  }
1032  
1033  
1034}