You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sn...@apache.org on 2020/08/31 14:01:04 UTC
[hadoop] branch trunk updated: [UI1] Provide a way to hide Tools
section in Web UIv1. Contributed by Andras Gyori
This is an automated email from the ASF dual-hosted git repository.
snemeth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 4ffe26f [UI1] Provide a way to hide Tools section in Web UIv1. Contributed by Andras Gyori
4ffe26f is described below
commit 4ffe26f9b811ff505a7137a340105ad2ceb419fa
Author: Szilard Nemeth <sn...@apache.org>
AuthorDate: Mon Aug 31 16:00:39 2020 +0200
[UI1] Provide a way to hide Tools section in Web UIv1. Contributed by Andras Gyori
---
.../hadoop/mapreduce/v2/hs/webapp/HsNavBlock.java | 22 +++++++++-----
.../apache/hadoop/yarn/conf/YarnConfiguration.java | 2 ++
.../src/main/resources/yarn-default.xml | 6 ++++
.../applicationhistoryservice/webapp/NavBlock.java | 21 +++++++++----
.../hadoop/yarn/server/webapp/WebPageUtils.java | 34 +++++++++++++++++++++-
.../yarn/server/nodemanager/webapp/NavBlock.java | 22 +++++++-------
.../server/resourcemanager/webapp/NavBlock.java | 25 +++++++++++-----
7 files changed, 101 insertions(+), 31 deletions(-)
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsNavBlock.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsNavBlock.java
index 9ef5a0f..fb077dd 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsNavBlock.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsNavBlock.java
@@ -18,8 +18,11 @@
package org.apache.hadoop.mapreduce.v2.hs.webapp;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.v2.app.webapp.App;
import org.apache.hadoop.mapreduce.v2.util.MRApps;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.webapp.WebPageUtils;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet.DIV;
import org.apache.hadoop.yarn.webapp.view.HtmlBlock;
@@ -31,8 +34,12 @@ import com.google.inject.Inject;
*/
public class HsNavBlock extends HtmlBlock {
final App app;
+ private Configuration conf;
- @Inject HsNavBlock(App app) { this.app = app; }
+ @Inject HsNavBlock(App app, Configuration conf) {
+ this.app = app;
+ this.conf = conf;
+ }
/*
* (non-Javadoc)
@@ -64,12 +71,11 @@ public class HsNavBlock extends HtmlBlock {
li().a(url("taskcounters", taskid), "Counters").__().__();
}
}
- nav.
- h3("Tools").
- ul().
- li().a("/conf", "Configuration").__().
- li().a("/logs", "Local logs").__().
- li().a("/stacks", "Server stacks").__().
- li().a("/jmx?qry=Hadoop:*", "Server metrics").__().__().__();
+
+ Hamlet.UL<DIV<Hamlet>> tools = WebPageUtils.appendToolSection(nav, conf);
+
+ if (tools != null) {
+ tools.__().__();
+ }
}
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
index 6c1be0e..2dbbfbf 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
@@ -362,6 +362,8 @@ public class YarnConfiguration extends Configuration {
+ "webapp.ui2.war-file-path";
public static final String YARN_API_SERVICES_ENABLE = "yarn."
+ "webapp.api-service.enable";
+ public static final String YARN_WEBAPP_UI1_ENABLE_TOOLS = "yarn."
+ + "webapp.ui1.tools.enable";
@Private
public static final String DEFAULT_YARN_API_SYSTEM_SERVICES_CLASS =
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
index 47f1239..23c56e7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
@@ -257,6 +257,12 @@
</property>
<property>
+ <description>Enable tools section in all ui1 webapp.</description>
+ <name>yarn.webapp.ui1.tools.enable</name>
+ <value>true</value>
+ </property>
+
+ <property>
<description>
Explicitly provide WAR file path for ui2 if needed.
</description>
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/NavBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/NavBlock.java
index 915af4a..10d3b52 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/NavBlock.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/webapp/NavBlock.java
@@ -18,7 +18,11 @@
package org.apache.hadoop.yarn.server.applicationhistoryservice.webapp;
+import com.google.inject.Inject;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.webapp.WebPageUtils;
import org.apache.hadoop.yarn.util.Log4jWarningErrorMetricsAppender;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;
import org.apache.hadoop.yarn.webapp.view.HtmlBlock;
@@ -27,6 +31,13 @@ import static org.apache.hadoop.util.GenericsUtil.isLog4jLogger;
public class NavBlock extends HtmlBlock {
+ private Configuration conf;
+
+ @Inject
+ public NavBlock(Configuration conf) {
+ this.conf = conf;
+ }
+
@Override
public void render(Block html) {
boolean addErrorsAndWarningsLink = false;
@@ -61,11 +72,11 @@ public class NavBlock extends HtmlBlock {
__().
__();
- Hamlet.UL<Hamlet.DIV<Hamlet>> tools = nav.h3("Tools").ul();
- tools.li().a("/conf", "Configuration").__()
- .li().a("/logs", "Local logs").__()
- .li().a("/stacks", "Server stacks").__()
- .li().a("/jmx?qry=Hadoop:*", "Server metrics").__();
+ Hamlet.UL<Hamlet.DIV<Hamlet>> tools = WebPageUtils.appendToolSection(nav, conf);
+
+ if (tools == null) {
+ return;
+ }
if (addErrorsAndWarningsLink) {
tools.li().a(url("errors-and-warnings"), "Errors/Warnings").__();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java
index 311462b..12c73c1 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java
@@ -18,6 +18,10 @@
package org.apache.hadoop.yarn.server.webapp;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;
+
import static org.apache.hadoop.yarn.webapp.view.JQueryUI.tableInit;
@@ -112,4 +116,32 @@ public class WebPageUtils {
.toString();
}
-}
+ /**
+ * Creates the tool section after a closed section. If it is not enabled,
+ * the section is created without any links.
+ * @param section a closed HTML div section
+ * @param conf configuration object
+ * @return the tool section, if it is enabled, null otherwise
+ */
+ public static Hamlet.UL<Hamlet.DIV<Hamlet>> appendToolSection(
+ Hamlet.DIV<Hamlet> section, Configuration conf) {
+ boolean isToolsEnabled = conf.getBoolean(
+ YarnConfiguration.YARN_WEBAPP_UI1_ENABLE_TOOLS, true);
+
+ Hamlet.DIV<Hamlet> tools = null;
+ Hamlet.UL<Hamlet.DIV<Hamlet>> enabledTools = null;
+
+ if (isToolsEnabled) {
+ tools = section.h3("Tools");
+ enabledTools = tools.ul().li().a("/conf", "Configuration").__().
+ li().a("/logs", "Local logs").__().
+ li().a("/stacks", "Server stacks").__().
+ li().a("/jmx?qry=Hadoop:*", "Server metrics").__();
+ } else {
+ section.h4("Tools (DISABLED)").__();
+ }
+
+ return enabledTools;
+ }
+
+}
\ No newline at end of file
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NavBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NavBlock.java
index 5cbcff5..86d9ae7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NavBlock.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NavBlock.java
@@ -19,6 +19,8 @@
package org.apache.hadoop.yarn.server.nodemanager.webapp;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.webapp.WebPageUtils;
import org.apache.hadoop.yarn.util.Log4jWarningErrorMetricsAppender;
import org.apache.hadoop.yarn.webapp.YarnWebParams;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;
@@ -51,7 +53,7 @@ public class NavBlock extends HtmlBlock implements YarnWebParams {
String RMWebAppURL =
WebAppUtils.getResolvedRMWebAppURLWithScheme(this.conf);
- Hamlet.UL<Hamlet.DIV<Hamlet>> ul = html
+ Hamlet.DIV<Hamlet> ul = html
.div("#nav")
.h3().__("ResourceManager").__()
.ul()
@@ -65,17 +67,17 @@ public class NavBlock extends HtmlBlock implements YarnWebParams {
.__()
.li()
.a(url("allContainers"), "List of Containers").__()
- .__()
- .h3("Tools")
- .ul()
- .li().a("/conf", "Configuration").__()
- .li().a("/logs", "Local logs").__()
- .li().a("/stacks", "Server stacks").__()
- .li().a("/jmx?qry=Hadoop:*", "Server metrics").__();
+ .__();
+
+ Hamlet.UL<Hamlet.DIV<Hamlet>> tools = WebPageUtils.appendToolSection(ul, conf);
+
+ if (tools == null) {
+ return;
+ }
if (addErrorsAndWarningsLink) {
- ul.li().a(url("errors-and-warnings"), "Errors/Warnings").__();
+ tools.li().a(url("errors-and-warnings"), "Errors/Warnings").__();
}
- ul.__().__();
+ tools.__().__();
}
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NavBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NavBlock.java
index 3107644..d6d7e54 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NavBlock.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NavBlock.java
@@ -18,7 +18,11 @@
package org.apache.hadoop.yarn.server.resourcemanager.webapp;
+import com.google.inject.Inject;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.webapp.WebPageUtils;
import org.apache.hadoop.yarn.util.Log4jWarningErrorMetricsAppender;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;
import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet.DIV;
@@ -29,6 +33,12 @@ import org.apache.hadoop.yarn.webapp.view.HtmlBlock;
import static org.apache.hadoop.util.GenericsUtil.isLog4jLogger;
public class NavBlock extends HtmlBlock {
+ private Configuration conf;
+
+ @Inject
+ public NavBlock(Configuration conf) {
+ this.conf = conf;
+ }
@Override public void render(Block html) {
boolean addErrorsAndWarningsLink = false;
@@ -55,13 +65,14 @@ public class NavBlock extends HtmlBlock {
li().a(url("apps", state.toString()), state.toString()).__();
}
subAppsList.__().__();
- UL<DIV<Hamlet>> tools = mainList.
- li().a(url("scheduler"), "Scheduler").__().__().
- h3("Tools").ul();
- tools.li().a("/conf", "Configuration").__().
- li().a("/logs", "Local logs").__().
- li().a("/stacks", "Server stacks").__().
- li().a("/jmx?qry=Hadoop:*", "Server metrics").__();
+
+ DIV<Hamlet> sectionBefore = mainList.
+ li().a(url("scheduler"), "Scheduler").__().__();
+ UL<DIV<Hamlet>> tools = WebPageUtils.appendToolSection(sectionBefore, conf);
+
+ if (tools == null) {
+ return;
+ }
if (addErrorsAndWarningsLink) {
tools.li().a(url("errors-and-warnings"), "Errors/Warnings").__();
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org