HBASE-23263 NPE in Quotas.jsp (#800)

Signed-off-by: Guangxu Cheng <guangxucheng@gmail.com>
This commit is contained in:
Karthik Palanisamy 2019-11-07 17:55:57 -08:00 committed by binlijin
parent c348e642d9
commit 264d3e3b16
1 changed files with 21 additions and 12 deletions

View File

@ -23,6 +23,7 @@
import="java.util.List" import="java.util.List"
import="org.apache.hadoop.conf.Configuration" import="org.apache.hadoop.conf.Configuration"
import="org.apache.hadoop.hbase.master.HMaster" import="org.apache.hadoop.hbase.master.HMaster"
import="org.apache.hadoop.hbase.quotas.MasterQuotaManager"
import="org.apache.hadoop.hbase.quotas.QuotaRetriever" import="org.apache.hadoop.hbase.quotas.QuotaRetriever"
import="org.apache.hadoop.hbase.quotas.QuotaSettings" import="org.apache.hadoop.hbase.quotas.QuotaSettings"
import="org.apache.hadoop.hbase.quotas.ThrottleSettings" import="org.apache.hadoop.hbase.quotas.ThrottleSettings"
@ -31,20 +32,24 @@
HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER); HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER);
Configuration conf = master.getConfiguration(); Configuration conf = master.getConfiguration();
pageContext.setAttribute("pageTitle", "HBase Master Quotas: " + master.getServerName()); pageContext.setAttribute("pageTitle", "HBase Master Quotas: " + master.getServerName());
boolean exceedThrottleQuotaEnabled = master.getMasterQuotaManager().isExceedThrottleQuotaEnabled();
List<ThrottleSettings> regionServerThrottles = new ArrayList<>(); List<ThrottleSettings> regionServerThrottles = new ArrayList<>();
List<ThrottleSettings> namespaceThrottles = new ArrayList<>(); List<ThrottleSettings> namespaceThrottles = new ArrayList<>();
List<ThrottleSettings> userThrottles = new ArrayList<>(); List<ThrottleSettings> userThrottles = new ArrayList<>();
try (QuotaRetriever scanner = QuotaRetriever.open(conf, null)) { MasterQuotaManager quotaManager = master.getMasterQuotaManager();
for (QuotaSettings quota : scanner) { boolean exceedThrottleQuotaEnabled = false;
if (quota instanceof ThrottleSettings) { if (quotaManager != null) {
ThrottleSettings throttle = (ThrottleSettings) quota; exceedThrottleQuotaEnabled = quotaManager.isExceedThrottleQuotaEnabled();
if (throttle.getUserName() != null) { try (QuotaRetriever scanner = QuotaRetriever.open(conf, null)) {
userThrottles.add(throttle); for (QuotaSettings quota : scanner) {
} else if (throttle.getNamespace() != null) { if (quota instanceof ThrottleSettings) {
namespaceThrottles.add(throttle); ThrottleSettings throttle = (ThrottleSettings) quota;
} else if (throttle.getRegionServer() != null) { if (throttle.getUserName() != null) {
regionServerThrottles.add(throttle); userThrottles.add(throttle);
} else if (throttle.getNamespace() != null) {
namespaceThrottles.add(throttle);
} else if (throttle.getRegionServer() != null) {
regionServerThrottles.add(throttle);
}
} }
} }
} }
@ -61,13 +66,15 @@
</div> </div>
</div> </div>
<%if (quotaManager != null) {%>
<div class="container-fluid content"> <div class="container-fluid content">
<div class="row"> <div class="row">
<div class="page-header"> <div class="page-header">
<h2>Rpc Throttle Enabled</h2> <h2>Rpc Throttle Enabled</h2>
</div> </div>
</div> </div>
<%if (master.getMasterQuotaManager().isRpcThrottleEnabled()) {%> <%if (quotaManager.isRpcThrottleEnabled()) {%>
<div class="alert alert-success"> <div class="alert alert-success">
Rpc throttle is enabled. Rpc throttle is enabled.
</div> </div>
@ -201,4 +208,6 @@
<% } %> <% } %>
</div> </div>
<% } %>
<jsp:include page="footer.jsp" /> <jsp:include page="footer.jsp" />