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