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 @Override public void renderNoFlush(final java.io.Writer jamonWriter)
34 throws java.io.IOException
35 {
36
37
38 MasterAddressTracker masterAddressTracker = master.getMasterAddressTracker();
39
40
41 if ((!master.isActiveMaster()) )
42 {
43
44 jamonWriter.write("\n ");
45
46
47 ServerName active_master =
48 (masterAddressTracker == null) ? null : masterAddressTracker.getMasterAddress();
49 assert active_master != null : "Failed to retrieve master's ServerName!";
50 int infoPort = (masterAddressTracker == null) ? 0 : masterAddressTracker.getMasterInfoPort();
51
52
53 jamonWriter.write("<div class=\"row inner_header\">\n <div class=\"page-header\">\n <h1>Backup Master <small>");
54
55 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(master.getServerName().getHostname()), jamonWriter);
56
57 jamonWriter.write("</small></h1>\n </div>\n </div>\n <h4>Current Active Master: <a href=\"//");
58
59 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(active_master.getHostname()), jamonWriter);
60
61 jamonWriter.write(":");
62
63 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(infoPort), jamonWriter);
64
65 jamonWriter.write("/master-status\"\n target=\"_blank\">");
66
67 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(active_master.getHostname()), jamonWriter);
68
69 jamonWriter.write("</a><h4>\n");
70 }
71
72 else
73 {
74
75 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 ");
76
77
78 Collection<ServerName> backup_masters = master.getClusterStatus().getBackupMasters();
79 ServerName [] backupServerNames = backup_masters.toArray(new ServerName[backup_masters.size()]);
80 Arrays.sort(backupServerNames);
81 for (ServerName serverName : backupServerNames) {
82 int infoPort = (masterAddressTracker == null) ? 0 : masterAddressTracker
83 .getBackupMasterInfoPort(serverName);
84
85
86 jamonWriter.write("<tr>\n <td><a href=\"//");
87
88 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
89
90 jamonWriter.write(":");
91
92 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(infoPort), jamonWriter);
93
94 jamonWriter.write("/master-status\"\n target=\"_blank\">");
95
96 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getHostname()), jamonWriter);
97
98 jamonWriter.write("</a>\n </td>\n <td>");
99
100 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(serverName.getPort()), jamonWriter);
101
102 jamonWriter.write("</td>\n <td>");
103
104 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(new Date(serverName.getStartcode())), jamonWriter);
105
106 jamonWriter.write("</td>\n </tr>\n ");
107
108
109 }
110
111
112 jamonWriter.write("<tr><td>Total:");
113
114 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(backupServerNames.length), jamonWriter);
115
116 jamonWriter.write("</td>\n </table>\n");
117 }
118
119 jamonWriter.write("\n");
120 }
121
122
123 }