View Javadoc

1   // Autogenerated Jamon implementation
2   // /home/apurtell/tmp/hbase-build/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
3   
4   package org.apache.hadoop.hbase.tmpl.master;
5   
6   // 33, 1
7   import java.util.*;
8   // 34, 1
9   import org.apache.hadoop.util.StringUtils;
10  // 35, 1
11  import org.apache.hadoop.hbase.util.Bytes;
12  // 36, 1
13  import org.apache.hadoop.hbase.util.JvmVersion;
14  // 37, 1
15  import org.apache.hadoop.hbase.util.FSUtils;
16  // 38, 1
17  import org.apache.hadoop.hbase.master.HMaster;
18  // 39, 1
19  import org.apache.hadoop.hbase.master.AssignmentManager;
20  // 40, 1
21  import org.apache.hadoop.hbase.master.ServerManager;
22  // 41, 1
23  import org.apache.hadoop.hbase.HConstants;
24  // 42, 1
25  import org.apache.hadoop.hbase.NamespaceDescriptor;
26  // 43, 1
27  import org.apache.hadoop.hbase.ServerLoad;
28  // 44, 1
29  import org.apache.hadoop.hbase.ServerName;
30  // 45, 1
31  import org.apache.hadoop.hbase.client.HBaseAdmin;
32  // 46, 1
33  import org.apache.hadoop.hbase.client.HConnectionManager;
34  // 47, 1
35  import org.apache.hadoop.hbase.HRegionInfo;
36  // 48, 1
37  import org.apache.hadoop.hbase.master.RegionState;
38  // 49, 1
39  import org.apache.hadoop.hbase.HTableDescriptor;
40  // 50, 1
41  import org.apache.hadoop.hbase.HBaseConfiguration;
42  // 51, 1
43  import org.apache.hadoop.hbase.TableName;
44  // 52, 1
45  import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
46  // 53, 1
47  import org.apache.hadoop.hbase.master.DeadServer;
48  // 54, 1
49  import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
50  // 55, 1
51  import org.apache.hadoop.hbase.security.visibility.VisibilityConstants;
52  // 56, 1
53  import org.apache.hadoop.hbase.security.access.AccessControlLists;
54  
55  public class MasterStatusTmplImpl
56    extends org.jamon.AbstractTemplateImpl
57    implements org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.Intf
58  
59  {
60    private final HMaster master;
61    private final HBaseAdmin admin;
62    private final String format;
63    private final Set<ServerName> deadServers;
64    private final AssignmentManager assignmentManager;
65    private final List<ServerName> servers;
66    private final ServerName metaLocation;
67    private final String filter;
68    private final ServerManager serverManager;
69    private final Map<String,Integer> frags;
70    private final boolean catalogJanitorEnabled;
71    // 68, 1
72    
73    public String formatZKString() {
74      StringBuilder quorums = new StringBuilder();
75      String zkQuorum = master.getZooKeeperWatcher().getQuorum();
76  
77      if (null == zkQuorum) {
78        return quorums.toString();
79      }
80  
81      String[] zks = zkQuorum.split(",");
82  
83      if (zks.length == 0) {
84        return quorums.toString();
85      }
86  
87      for(int i = 0; i < zks.length; ++i) {
88        quorums.append(zks[i].trim());
89  
90        if (i != (zks.length - 1)) {
91          quorums.append("<br/>");
92        }
93      }
94  
95      return quorums.toString();
96    }
97  
98    protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
99    {
100     if(! p_implData.getFormat__IsNotDefault())
101     {
102       p_implData.setFormat("html");
103     }
104     if(! p_implData.getDeadServers__IsNotDefault())
105     {
106       p_implData.setDeadServers(null);
107     }
108     if(! p_implData.getAssignmentManager__IsNotDefault())
109     {
110       p_implData.setAssignmentManager(null);
111     }
112     if(! p_implData.getServers__IsNotDefault())
113     {
114       p_implData.setServers(null);
115     }
116     if(! p_implData.getMetaLocation__IsNotDefault())
117     {
118       p_implData.setMetaLocation(null);
119     }
120     if(! p_implData.getFilter__IsNotDefault())
121     {
122       p_implData.setFilter("general");
123     }
124     if(! p_implData.getServerManager__IsNotDefault())
125     {
126       p_implData.setServerManager(null);
127     }
128     if(! p_implData.getFrags__IsNotDefault())
129     {
130       p_implData.setFrags(null);
131     }
132     if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
133     {
134       p_implData.setCatalogJanitorEnabled(true);
135     }
136     return p_implData;
137   }
138   public MasterStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
139   {
140     super(p_templateManager, __jamon_setOptionalArguments(p_implData));
141     master = p_implData.getMaster();
142     admin = p_implData.getAdmin();
143     format = p_implData.getFormat();
144     deadServers = p_implData.getDeadServers();
145     assignmentManager = p_implData.getAssignmentManager();
146     servers = p_implData.getServers();
147     metaLocation = p_implData.getMetaLocation();
148     filter = p_implData.getFilter();
149     serverManager = p_implData.getServerManager();
150     frags = p_implData.getFrags();
151     catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
152   }
153   
154   public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
155     throws java.io.IOException
156   {
157     // 59, 1
158     if (format.equals("json") )
159     {
160       // 59, 30
161       jamonWriter.write("\n  ");
162       // 60, 3
163       {
164         org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
165         __jamon__var_6.setFormat("json" );
166         __jamon__var_6.setFilter(filter);
167         __jamon__var_6.renderNoFlush(jamonWriter);
168       }
169       // 60, 68
170       jamonWriter.write("\n  ");
171       // 61, 3
172       return; 
173     }
174     // 62, 7
175     jamonWriter.write("\n");
176     // 63, 1
177     
178 ServerManager serverManager = master.getServerManager();
179 AssignmentManager assignmentManager = master.getAssignmentManager();
180 
181     // 95, 1
182     jamonWriter.write("<!--[if IE]>\n<!DOCTYPE html>\n<![endif]-->\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>");
183     // 102, 12
184     if (master.isActiveMaster() )
185     {
186       // 102, 43
187       jamonWriter.write("Master: ");
188     }
189     // 102, 51
190     else
191     {
192       // 102, 58
193       jamonWriter.write("Backup Master: ");
194     }
195     // 102, 79
196     jamonWriter.write("\n    ");
197     // 103, 5
198     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
199     // 103, 47
200     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\">\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=\"/\">Home</a></li>\n                <li><a href=\"/tablesDetailed.jsp\">Table Details</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                ");
201     // 131, 17
202     if (HBaseConfiguration.isShowConfInServlet())
203     {
204       // 131, 64
205       jamonWriter.write("\n                <li><a href=\"/conf\">HBase Configuration</a></li>\n                ");
206     }
207     // 133, 23
208     jamonWriter.write("\n               </ul>\n            </div><!--/.nav-collapse -->\n        </div>\n    </div>\n\n    <div class=\"container\">\n\t");
209     // 140, 2
210     if (master.isActiveMaster() )
211     {
212       // 140, 33
213       jamonWriter.write("\n        <div class=\"row inner_header\">\n            <div class=\"page-header\">\n                <h1>Master <small>");
214       // 143, 35
215       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
216       // 143, 77
217       jamonWriter.write("</small></h1>\n            </div>\n        </div>\n\n        <div class=\"row\">\n        <!-- Various warnings that cluster admins should be aware of -->\n        ");
218       // 149, 9
219       if (JvmVersion.isBadJvmVersion() )
220       {
221         // 149, 45
222         jamonWriter.write("\n          <div class=\"alert alert-error\">\n          Your current JVM version ");
223         // 151, 36
224         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(System.getProperty("java.version")), jamonWriter);
225         // 151, 76
226         jamonWriter.write(" is known to be\n          unstable with HBase. Please see the\n          <a href=\"http://wiki.apache.org/hadoop/Hbase/Troubleshooting#A18\">HBase wiki</a>\n          for details.\n          </div>\n        ");
227       }
228       // 156, 15
229       jamonWriter.write("\n        ");
230       // 157, 9
231       if (master.isInitialized() && !catalogJanitorEnabled )
232       {
233         // 157, 65
234         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        ");
235       }
236       // 162, 15
237       jamonWriter.write("\n        ");
238       // 163, 9
239       if (!master.isBalancerOn() )
240       {
241         // 163, 39
242         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        ");
243       }
244       // 169, 15
245       jamonWriter.write("\n\n        <section>\n            <h2>Region Servers</h2>\n            ");
246       // 173, 13
247       {
248         org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl __jamon__var_7 = new org.apache.hadoop.hbase.tmpl.master.RegionServerListTmpl(this.getTemplateManager());
249         __jamon__var_7.setServers(servers );
250         __jamon__var_7.renderNoFlush(jamonWriter, master);
251       }
252       // 173, 74
253       jamonWriter.write("\n\n            ");
254       // 175, 13
255       if ((deadServers != null) )
256       {
257         // 175, 42
258         jamonWriter.write("\n                ");
259         // 176, 17
260         {
261           // 176, 17
262           __jamon_innerUnit__deadRegionServers(jamonWriter);
263         }
264         // 176, 40
265         jamonWriter.write("\n            ");
266       }
267       // 177, 19
268       jamonWriter.write("\n        </section>\n        <section>\n            ");
269       // 180, 13
270       {
271         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_8 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
272         __jamon__var_8.renderNoFlush(jamonWriter, master );
273       }
274       // 180, 58
275       jamonWriter.write("\n        </section>\n        <section>\n            <h2>Tables</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                        ");
276       // 198, 25
277       if ((metaLocation != null) )
278       {
279         // 198, 55
280         jamonWriter.write("\n                            ");
281         // 199, 29
282         {
283           // 199, 29
284           __jamon_innerUnit__userTables(jamonWriter);
285         }
286         // 199, 45
287         jamonWriter.write("\n                        ");
288       }
289       // 200, 31
290       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_catalogTables\">\n                        ");
291       // 203, 25
292       if ((metaLocation != null) )
293       {
294         // 203, 55
295         jamonWriter.write("\n                            ");
296         // 204, 29
297         {
298           // 204, 29
299           __jamon_innerUnit__catalogTables(jamonWriter);
300         }
301         // 204, 48
302         jamonWriter.write("\n                        ");
303       }
304       // 205, 31
305       jamonWriter.write("\n                    </div>\n                    <div class=\"tab-pane\" id=\"tab_userSnapshots\">\n                        ");
306       // 208, 25
307       {
308         // 208, 25
309         __jamon_innerUnit__userSnapshots(jamonWriter);
310       }
311       // 208, 44
312       jamonWriter.write("\n                    </div>\n                </div>\n            </div>\n        </section>\n        ");
313       // 213, 9
314       {
315         org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl __jamon__var_9 = new org.apache.hadoop.hbase.tmpl.master.AssignmentManagerStatusTmpl(this.getTemplateManager());
316         __jamon__var_9.renderNoFlush(jamonWriter, master.getAssignmentManager());
317       }
318       // 213, 90
319       jamonWriter.write("\n\t");
320     }
321     // 214, 2
322     else
323     {
324       // 214, 9
325       jamonWriter.write("\n        <section>\n            ");
326       // 216, 13
327       {
328         org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl __jamon__var_10 = new org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl(this.getTemplateManager());
329         __jamon__var_10.renderNoFlush(jamonWriter, master );
330       }
331       // 216, 58
332       jamonWriter.write("\n        </section>\n\t");
333     }
334     // 218, 8
335     jamonWriter.write("\n\n\n        <section>\n            ");
336     // 222, 13
337     {
338       org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_11 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());
339       __jamon__var_11.setFilter(filter );
340       __jamon__var_11.renderNoFlush(jamonWriter);
341     }
342     // 222, 61
343     jamonWriter.write("\n        </section>\n\n        <section>\n            <h2>Software Attributes</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>");
344     // 235, 25
345     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getVersion()), jamonWriter);
346     // 235, 84
347     jamonWriter.write(", r");
348     // 235, 87
349     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getRevision()), jamonWriter);
350     // 235, 147
351     jamonWriter.write("</td><td>HBase version and revision</td>\n                </tr>\n                <tr>\n                    <td>HBase Compiled</td>\n                    <td>");
352     // 239, 25
353     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getDate()), jamonWriter);
354     // 239, 81
355     jamonWriter.write(", ");
356     // 239, 83
357     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getUser()), jamonWriter);
358     // 239, 139
359     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>");
360     // 244, 25
361     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.hbase.util.VersionInfo.getSrcChecksum()), jamonWriter);
362     // 244, 88
363     jamonWriter.write("</td>\n                    <td>HBase source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Version</td>\n                    <td>");
364     // 249, 25
365     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getVersion()), jamonWriter);
366     // 249, 78
367     jamonWriter.write(", r");
368     // 249, 81
369     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getRevision()), jamonWriter);
370     // 249, 135
371     jamonWriter.write("</td>\n                    <td>Hadoop version and revision</td>\n                </tr>\n                <tr>\n                    <td>Hadoop Compiled</td>\n                    <td>");
372     // 254, 25
373     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getDate()), jamonWriter);
374     // 254, 75
375     jamonWriter.write(", ");
376     // 254, 77
377     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getUser()), jamonWriter);
378     // 254, 127
379     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>");
380     // 259, 25
381     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.hadoop.util.VersionInfo.getSrcChecksum()), jamonWriter);
382     // 259, 82
383     jamonWriter.write("</td>\n                    <td>Hadoop source MD5 checksum</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Version</td>\n                    <td>");
384     // 264, 25
385     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getVersion()), jamonWriter);
386     // 264, 72
387     jamonWriter.write(", revision=");
388     // 264, 83
389     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getRevision()), jamonWriter);
390     // 264, 131
391     jamonWriter.write("</td>\n                    <td>ZooKeeper client version and revision</td>\n                </tr>\n                <tr>\n                    <td>ZooKeeper Client Compiled</td>\n                    <td>");
392     // 269, 25
393     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(org.apache.zookeeper.Version.getBuildDate()), jamonWriter);
394     // 269, 74
395     jamonWriter.write("</td>\n                    <td>When ZooKeeper client version was compiled</td>\n                </tr>\n                <tr>\n                    <td>Zookeeper Quorum</td>\n                    <td> ");
396     // 275, 26
397     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(formatZKString()), jamonWriter);
398     // 275, 48
399     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> ");
400     // 280, 26
401     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getZooKeeper().getBaseZNode()), jamonWriter);
402     // 280, 68
403     jamonWriter.write("</td>\n                    <td>Root node of this cluster in ZK.</td>\n                </tr>\n                <tr>\n                    <td>HBase Root Directory</td>\n                    <td>");
404     // 285, 25
405     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(FSUtils.getRootDir(master.getConfiguration()).toString()), jamonWriter);
406     // 285, 87
407     jamonWriter.write("</td>\n                    <td>Location of HBase home directory</td>\n                </tr>\n                <tr>\n                    <td>HMaster Start Time</td>\n                    <td>");
408     // 290, 25
409     org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterStartTime())), jamonWriter);
410     // 290, 68
411     jamonWriter.write("</td>\n                    <td>Date stamp of when this HMaster was started</td>\n                </tr>\n                ");
412     // 293, 17
413     if (master.isActiveMaster() )
414     {
415       // 293, 48
416       jamonWriter.write("\n\t                <tr>\n\t                    <td>HMaster Active Time</td>\n\t                    <td>");
417       // 296, 26
418       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(master.getMasterActiveTime())), jamonWriter);
419       // 296, 70
420       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>");
421       // 301, 26
422       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getClusterId() != null ? master.getClusterId() : "Not set"), jamonWriter);
423       // 301, 97
424       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>");
425       // 306, 26
426       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(StringUtils.limitDecimalTo2(master.getServerManager().getAverageLoad())), jamonWriter);
427       // 306, 103
428       jamonWriter.write("</td>\n\t                    <td>Average number of regions per regionserver. Naive computation.</td>\n\t                </tr>\n\t                ");
429       // 309, 18
430       if (frags != null )
431       {
432         // 309, 39
433         jamonWriter.write("\n\t                <tr>\n\t                    <td>Fragmentation</td>\n\t                    <td>");
434         // 312, 26
435         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get("-TOTAL-") != null ? frags.get("-TOTAL-").intValue() + "%" : "n/a"), jamonWriter);
436         // 312, 108
437         jamonWriter.write("</td>\n\t                    <td>Overall fragmentation of all tables, including hbase:meta</td>\n\t                </tr>\n\t                ");
438       }
439       // 315, 24
440       jamonWriter.write("\n\t                <tr>\n\t                    <td>Coprocessors</td>\n\t                    <td>");
441       // 318, 26
442       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(java.util.Arrays.toString(master.getCoprocessors())), jamonWriter);
443       // 318, 83
444       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>");
445       // 323, 26
446       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(master.getLoadBalancerClassName()), jamonWriter);
447       // 323, 65
448       jamonWriter.write("</td>\n\t                    <td>LoadBalancer to be used in the Master</td>\n\t                </tr>\n                ");
449     }
450     // 326, 23
451     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/bootstrap.min.js\" type=\"text/javascript\"></script>\n    <script src=\"/static/js/tab.js\" type=\"text/javascript\"></script>\n  </body>\n</html>\n\n");
452   }
453   
454   
455   // 435, 1
456   private void __jamon_innerUnit__userSnapshots(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
457     throws java.io.IOException
458   {
459     // 436, 1
460     
461    List<SnapshotDescription> snapshots = admin.listSnapshots();
462 
463     // 439, 1
464     if ((snapshots != null && snapshots.size() > 0))
465     {
466       // 439, 51
467       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    ");
468       // 446, 5
469       for (SnapshotDescription snapshotDesc : snapshots)
470       {
471         // 446, 57
472         jamonWriter.write("\n    ");
473         // 447, 5
474         
475         TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
476     
477         // 450, 5
478         jamonWriter.write("<tr>\n        <td><a href=\"snapshot.jsp?name=");
479         // 451, 40
480         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
481         // 451, 68
482         jamonWriter.write("\">");
483         // 451, 70
484         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotDesc.getName()), jamonWriter);
485         // 451, 98
486         jamonWriter.write("</a> </td>\n        <td><a href=\"table.jsp?name=");
487         // 452, 37
488         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
489         // 452, 74
490         jamonWriter.write("\">");
491         // 452, 76
492         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshotTable.getNameAsString()), jamonWriter);
493         // 452, 113
494         jamonWriter.write("</a>\n        </td>\n        <td>");
495         // 454, 13
496         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(new Date(snapshotDesc.getCreationTime())), jamonWriter);
497         // 454, 59
498         jamonWriter.write("</td>\n    </tr>\n    ");
499       }
500       // 456, 12
501       jamonWriter.write("\n    <p>");
502       // 457, 8
503       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(snapshots.size()), jamonWriter);
504       // 457, 30
505       jamonWriter.write(" snapshot(s) in set.</p>\n</table>\n");
506     }
507     // 459, 7
508     jamonWriter.write("\n");
509   }
510   
511   
512   // 338, 1
513   private void __jamon_innerUnit__catalogTables(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
514     throws java.io.IOException
515   {
516     // 339, 1
517     
518  HTableDescriptor[] sysTables = admin.listTableDescriptorsByNamespace(NamespaceDescriptor
519  .SYSTEM_NAMESPACE_NAME_STR);
520 
521     // 344, 1
522     jamonWriter.write("<table class=\"table table-striped\">\n<tr>\n    <th>Table Name</th>\n    ");
523     // 347, 5
524     if ((frags != null) )
525     {
526       // 347, 28
527       jamonWriter.write("\n        <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n    ");
528     }
529     // 349, 11
530     jamonWriter.write("\n    <th>Description</th>\n</tr>\n");
531     // 352, 1
532     for (HTableDescriptor systemTable : sysTables)
533     {
534       // 352, 49
535       jamonWriter.write("\n<tr>\n");
536       // 354, 1
537       TableName tableName = systemTable.getTableName();
538       // 355, 5
539       jamonWriter.write("<td><a href=\"table.jsp?name=");
540       // 355, 33
541       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
542       // 355, 48
543       jamonWriter.write("\">");
544       // 355, 50
545       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName), jamonWriter);
546       // 355, 65
547       jamonWriter.write("</a></td>\n    ");
548       // 356, 5
549       if ((frags != null))
550       {
551         // 356, 27
552         jamonWriter.write("\n        <td align=\"center\">");
553         // 357, 28
554         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString())
555         .intValue() + "%" : "n/a"), jamonWriter);
556         // 358, 37
557         jamonWriter.write("</td>\n    ");
558       }
559       // 359, 11
560       jamonWriter.write("\n    ");
561       // 360, 5
562       String description = null;
563         if (tableName.equals(TableName.META_TABLE_NAME)){
564             description = "The hbase:meta table holds references to all User Table regions";
565         } else if (tableName.equals(AccessControlLists.ACL_TABLE_NAME)){
566             description = "The hbase:acl table holds information about acl";
567 	 } else if (tableName.equals(VisibilityConstants.LABELS_TABLE_NAME)){
568 	     description = "The hbase:labels table holds information about visibility labels";
569         } else {
570             description = "The .NAMESPACE. table holds information about namespaces.";
571         }
572     
573       // 371, 5
574       jamonWriter.write("<td>");
575       // 371, 9
576       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(description), jamonWriter);
577       // 371, 26
578       jamonWriter.write("</td>\n</tr>\n");
579     }
580     // 373, 8
581     jamonWriter.write("\n</table>\n");
582   }
583   
584   
585   // 377, 1
586   private void __jamon_innerUnit__userTables(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
587     throws java.io.IOException
588   {
589     // 378, 1
590     
591    HTableDescriptor[] tables = admin.listTables();
592 
593     // 381, 1
594     if ((tables != null && tables.length > 0))
595     {
596       // 381, 45
597       jamonWriter.write("\n<table class=\"table table-striped\">\n    <tr>\n        <th>Namespace</th>\n        <th>Table Name</th>\n        ");
598       // 386, 9
599       if ((frags != null) )
600       {
601         // 386, 32
602         jamonWriter.write("\n            <th title=\"Fragmentation - Will be 0% after a major compaction and fluctuate during normal usage.\">Frag.</th>\n        ");
603       }
604       // 388, 15
605       jamonWriter.write("\n        <th>Online Regions</th>\n        <th>Offline Regions</th>\n        <th>Failed Regions</th>\n        <th>Split Regions</th>\n        <th>Other Regions</th>\n        <th>Description</th>\n    </tr>\n    ");
606       // 396, 5
607       for (HTableDescriptor htDesc : tables)
608       {
609         // 396, 45
610         jamonWriter.write("\n    ");
611         // 397, 5
612         
613       TableName tableName = htDesc.getTableName();
614       Map<RegionState.State, List<HRegionInfo>> tableRegions =
615           master.getAssignmentManager().getRegionStates()
616             .getRegionByStateOfTable(tableName);
617       int openRegionsCount = tableRegions.get(RegionState.State.OPEN).size();
618       int offlineRegionsCount = tableRegions.get(RegionState.State.OFFLINE).size();
619       int splitRegionsCount = tableRegions.get(RegionState.State.SPLIT).size();
620       int failedRegionsCount = tableRegions.get(RegionState.State.FAILED_OPEN).size()
621              + tableRegions.get(RegionState.State.FAILED_CLOSE).size();
622       int otherRegionsCount = 0;
623       for (List<HRegionInfo> list: tableRegions.values()) {
624          otherRegionsCount += list.size();
625       }
626       // now subtract known states
627       otherRegionsCount = otherRegionsCount - openRegionsCount
628                      - failedRegionsCount - offlineRegionsCount
629                      - splitRegionsCount;
630     
631         // 416, 5
632         jamonWriter.write("<tr>\n        <td>");
633         // 417, 13
634         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNamespaceAsString()), jamonWriter);
635         // 417, 51
636         jamonWriter.write("</td>\n        <td><a href=table.jsp?name=");
637         // 418, 36
638         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getNameAsString()), jamonWriter);
639         // 418, 69
640         jamonWriter.write(">");
641         // 418, 70
642         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tableName.getQualifierAsString()), jamonWriter);
643         // 418, 108
644         jamonWriter.write("</a> </td>\n        ");
645         // 419, 9
646         if ((frags != null) )
647         {
648           // 419, 32
649           jamonWriter.write("\n            <td align=\"center\">");
650           // 420, 32
651           org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(frags.get(tableName.getNameAsString()) != null ? frags.get(tableName.getNameAsString()).intValue() + "%" : "n/a"), jamonWriter);
652           // 420, 150
653           jamonWriter.write("</td>\n        ");
654         }
655         // 421, 15
656         jamonWriter.write("\n        <td>");
657         // 422, 13
658         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(openRegionsCount), jamonWriter);
659         // 422, 35
660         jamonWriter.write("</td>\n        <td>");
661         // 423, 13
662         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(offlineRegionsCount), jamonWriter);
663         // 423, 38
664         jamonWriter.write("</td>\n        <td>");
665         // 424, 13
666         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(failedRegionsCount), jamonWriter);
667         // 424, 37
668         jamonWriter.write("</td>\n        <td>");
669         // 425, 13
670         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(splitRegionsCount), jamonWriter);
671         // 425, 36
672         jamonWriter.write("</td>\n        <td>");
673         // 426, 13
674         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(otherRegionsCount), jamonWriter);
675         // 426, 36
676         jamonWriter.write("</td>\n        <td>");
677         // 427, 13
678         org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(htDesc.toStringCustomizedValues()), jamonWriter);
679         // 427, 52
680         jamonWriter.write("</td>\n    </tr>\n    ");
681       }
682       // 429, 12
683       jamonWriter.write("\n    <p>");
684       // 430, 8
685       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(tables.length), jamonWriter);
686       // 430, 27
687       jamonWriter.write(" table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>\n</table>\n");
688     }
689     // 432, 7
690     jamonWriter.write("\n");
691   }
692   
693   
694   // 463, 1
695   private void __jamon_innerUnit__deadRegionServers(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
696     throws java.io.IOException
697   {
698     // 465, 1
699     if ((deadServers != null && deadServers.size() > 0))
700     {
701       // 465, 55
702       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    ");
703       // 473, 5
704       
705        DeadServer deadServerUtil = master.getServerManager().getDeadServers();
706        ServerName [] deadServerNames = deadServers.toArray(new ServerName[deadServers.size()]);
707          Arrays.sort(deadServerNames);
708          for (ServerName deadServerName: deadServerNames) {
709     
710       // 479, 5
711       jamonWriter.write("<tr>\n    \t<th></th>\n        <td>");
712       // 481, 13
713       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerName), jamonWriter);
714       // 481, 33
715       jamonWriter.write("</td>\n        <td>");
716       // 482, 13
717       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServerUtil.getTimeOfDeath(deadServerName)), jamonWriter);
718       // 482, 64
719       jamonWriter.write("</td>\n    </tr>\n    ");
720       // 484, 5
721       
722         }
723     
724       // 487, 5
725       jamonWriter.write("<tr>\n        <th>Total: </th>\n        <td>servers: ");
726       // 489, 22
727       org.jamon.escaping.Escaping.NONE.write(org.jamon.emit.StandardEmitter.valueOf(deadServers.size()), jamonWriter);
728       // 489, 46
729       jamonWriter.write("</td>\n        <th></th>\n    </tr>\n</table>\n");
730     }
731     // 493, 7
732     jamonWriter.write("\n");
733     // 494, 1
734     
735    HConnectionManager.deleteConnection(admin.getConfiguration());
736 
737   }
738   
739   
740 }