You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ni...@apache.org on 2020/12/25 02:09:56 UTC
[hbase] branch master updated: HBASE-25443 Improve the experience
of using the Master webpage by change the loading process of snapshot list
to asynchronous
This is an automated email from the ASF dual-hosted git repository.
niuyulin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 0f868da HBASE-25443 Improve the experience of using the Master webpage by change the loading process of snapshot list to asynchronous
0f868da is described below
commit 0f868da05d7ffabe4512a0cae110ed097b033ebf
Author: Huang Zhuoyue <hu...@xiaomi.com>
AuthorDate: Tue Dec 22 17:28:25 2020 +0800
HBASE-25443 Improve the experience of using the Master webpage by change the loading process of snapshot list to asynchronous
---
.../hbase/tmpl/master/MasterStatusTmpl.jamon | 35 -------------
.../hbase-webapps/master/userSnapshots.jsp | 58 ++++++++++++++++++++++
.../main/resources/hbase-webapps/static/js/tab.js | 6 ++-
3 files changed, 63 insertions(+), 36 deletions(-)
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
index 602122d..14e82e8 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
@@ -270,7 +270,6 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
</%if>
</div>
<div class="tab-pane" id="tab_userSnapshots">
- <& userSnapshots &>
</div>
</div>
</div>
@@ -657,40 +656,6 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
</%if>
</%def>
-<%def userSnapshots>
-<%java>
- List<SnapshotDescription> snapshots = master.isInitialized() ?
- master.getSnapshotManager().getCompletedSnapshots() : null;
-</%java>
-<%if (snapshots != null && snapshots.size() > 0)%>
-<table class="table table-striped">
- <tr>
- <th>Snapshot Name</th>
- <th>Table</th>
- <th>Creation Time</th>
- <th>Owner</th>
- <th>TTL</th>
- </tr>
- <%for SnapshotDescription snapshotDesc : snapshots%>
- <%java>
- TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
- </%java>
- <tr>
- <td><a href="snapshot.jsp?name=<% snapshotDesc.getName() %>"><% snapshotDesc.getName() %></a> </td>
- <td><a href="table.jsp?name=<% snapshotTable.getNameAsString() %>"><% snapshotTable.getNameAsString() %></a>
- </td>
- <td><% new Date(snapshotDesc.getCreationTime()) %></td>
- <td><% snapshotDesc.getOwner() %></td>
-
- <td>
- <% snapshotDesc.getTtl() == 0 ? "FOREVER": PrettyPrinter.format(String.valueOf(snapshotDesc.getTtl()), PrettyPrinter.Unit.TIME_INTERVAL) %>
- </td>
- </tr>
- </%for>
- <p><% snapshots.size() %> snapshot(s) in set. [<a href="/snapshotsStats.jsp">Snapshot Storefile stats</a>]</p>
-</table>
-</%if>
-</%def>
<%def deadRegionServers>
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/userSnapshots.jsp b/hbase-server/src/main/resources/hbase-webapps/master/userSnapshots.jsp
new file mode 100644
index 0000000..0b741e1
--- /dev/null
+++ b/hbase-server/src/main/resources/hbase-webapps/master/userSnapshots.jsp
@@ -0,0 +1,58 @@
+<%--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+--%>
+<%@ page contentType="text/plain;charset=UTF-8"
+ import="java.util.List"
+ import="java.util.Date"
+ import="org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription"
+ import="org.apache.hadoop.hbase.master.HMaster"
+ import="org.apache.hadoop.hbase.TableName"
+ import="org.apache.hadoop.hbase.util.PrettyPrinter"
+%>
+<%
+ HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER);
+ List<SnapshotDescription> snapshots = master.isInitialized() ?
+ master.getSnapshotManager().getCompletedSnapshots() : null;
+%>
+<%if (snapshots != null && snapshots.size() > 0) { %>
+<table class="table table-striped">
+ <tr>
+ <th>Snapshot Name</th>
+ <th>Table</th>
+ <th>Creation Time</th>
+ <th>Owner</th>
+ <th>TTL</th>
+ </tr>
+ <% for (SnapshotDescription snapshotDesc : snapshots){ %>
+ <% TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable()); %>
+ <tr>
+ <td><a href="snapshot.jsp?name=<%= snapshotDesc.getName() %>"><%= snapshotDesc.getName() %></a> </td>
+ <td><a href="table.jsp?name=<%= snapshotTable.getNameAsString() %>"><%= snapshotTable.getNameAsString() %></a>
+ </td>
+ <td><%= new Date(snapshotDesc.getCreationTime()) %></td>
+ <td><%= snapshotDesc.getOwner() %></td>
+
+ <td>
+ <%= snapshotDesc.getTtl() == 0 ? "FOREVER": PrettyPrinter.format(String.valueOf(snapshotDesc.getTtl()), PrettyPrinter.Unit.TIME_INTERVAL) %>
+ </td>
+ </tr>
+ <% } %>
+ <p><%= snapshots.size() %> snapshot(s) in set. [<a href="/snapshotsStats.jsp">Snapshot Storefile stats</a>]</p>
+</table>
+<% } %>
diff --git a/hbase-server/src/main/resources/hbase-webapps/static/js/tab.js b/hbase-server/src/main/resources/hbase-webapps/static/js/tab.js
index 31438a1..808882b 100644
--- a/hbase-server/src/main/resources/hbase-webapps/static/js/tab.js
+++ b/hbase-server/src/main/resources/hbase-webapps/static/js/tab.js
@@ -26,6 +26,10 @@ $(document).ready(
location.hash = $(e.target).attr('href').substr(1).replace(prefix, "");
$(this).tab('show');
});
+
+ $.ajax({url:"/userSnapshots.jsp", success:function(result){
+ $("#tab_userSnapshots").html(result);
+ }});
if (location.hash !== '') {
var tabItem = $('a[href="' + location.hash.replace("#", "#"+prefix) + '"]');
@@ -35,4 +39,4 @@ $(document).ready(
}
return true;
}
-);
\ No newline at end of file
+);