1
2
3
4 package org.apache.hadoop.hbase.tmpl.master;
5
6
7 import java.util.*;
8
9 import org.apache.hadoop.hbase.ServerName;
10
11 import org.apache.hadoop.hbase.ClusterStatus;
12
13 import org.apache.hadoop.hbase.master.HMaster;
14
15 public class BackupMasterStatusTmplImpl
16 extends org.jamon.AbstractTemplateImpl
17 implements org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl.Intf
18
19 {
20 private final HMaster master;
21 protected static org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl.ImplData p_implData)
22 {
23 return p_implData;
24 }
25 public BackupMasterStatusTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.master.BackupMasterStatusTmpl.ImplData p_implData)
26 {
27 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
28 master = p_implData.getMaster();
29 }
30
31 public void renderNoFlush(@SuppressWarnings({"unused","hiding"}) final java.io.Writer jamonWriter)
32 throws java.io.IOException
33 {
34
35
36 Collection<ServerName> masters = null;
37
38 if (master.isActiveMaster()) {
39 ClusterStatus status = master.getClusterStatus();
40 masters = status.getBackupMasters();
41 } else{
42 ServerName sn = master.getMasterAddressTracker().getMasterAddress();
43 assert sn != null : "Failed to retreive master's ServerName!";
44 masters = Collections.singletonList(sn);
45 }
46
47
48
49 ServerName [] serverNames = masters.toArray(new ServerName[masters.size()]);
50
51
52 if ((!master.isActiveMaster()) )
53 {
54
55 jamonWriter.write("\n ");
56
57 if (serverNames[0] != null )
58 {
59
60 jamonWriter.write("\n <h2>Master</h2>\n <a href=\"//");
61
62 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverNames[0].getHostname()), jamonWriter);
63
64 jamonWriter.write(":");
65
66 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getConfiguration().getInt("hbase.master.info.port", 60010)), jamonWriter);
67
68 jamonWriter.write("/master-status\" target=\"_blank\">");
69
70 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverNames[0].getHostname()), jamonWriter);
71
72 jamonWriter.write("</a>\n ");
73 }
74
75 else
76 {
77
78 jamonWriter.write("\n Unable to parse master hostname.\n ");
79 }
80
81 jamonWriter.write("\n");
82 }
83
84 else
85 {
86
87 jamonWriter.write("\n <h2>Backup Masters</h2>\n\n <table class=\"table table-striped\">\n <tr>\n <th>ServerName</th>\n <th>Port</th>\n <th>Start Time</th>\n </tr>\n ");
88
89
90 Arrays.sort(serverNames);
91 for (ServerName serverName : serverNames) {
92
93
94 jamonWriter.write("<tr>\n <td><a href=\"//");
95
96 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
97
98 jamonWriter.write(":");
99
100 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getConfiguration().getInt("hbase.master.info.port", 60010)), jamonWriter);
101
102 jamonWriter.write("/master-status\" target=\"_blank\">");
103
104 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
105
106 jamonWriter.write("</a></td>\n <td>");
107
108 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getPort()), jamonWriter);
109
110 jamonWriter.write("</td>\n <td>");
111
112 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(serverName.getStartcode())), jamonWriter);
113
114 jamonWriter.write("</td>\n </tr>\n ");
115
116
117 }
118
119
120 jamonWriter.write("<tr><td>Total:");
121
122 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf((masters != null) ? masters.size() : 0), jamonWriter);
123
124 jamonWriter.write("</td>\n </table>\n");
125 }
126
127 jamonWriter.write("\n");
128 }
129
130
131 }