HBASE-25443 Improve the experience of using the Master webpage by change the loading process of snapshot list to asynchronous (#2811)
Signed-off-by: Yulin Niu <niuyulin@apache.org> Signed-off-by: Ramkrishna S Vasudevan <ramkrishna@apache.org>
This commit is contained in:
parent
b07b400b62
commit
73b0e8a216
|
@ -270,7 +270,6 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
|
|||
</%if>
|
||||
</div>
|
||||
<div class="tab-pane" id="tab_userSnapshots">
|
||||
<& userSnapshots &>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -660,40 +659,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>
|
||||
|
|
|
@ -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>
|
||||
<% } %>
|
|
@ -27,6 +27,10 @@ $(document).ready(
|
|||
$(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) + '"]');
|
||||
tabItem.tab('show');
|
||||
|
|
Loading…
Reference in New Issue