diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GlobalPolicyGenerator.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GlobalPolicyGenerator.java index 63a53f3642aee..5822bd48c9609 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GlobalPolicyGenerator.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GlobalPolicyGenerator.java @@ -377,4 +377,9 @@ private static void handFormatPolicyStateStore(Configuration conf) { System.err.println("Delete Federation policy state store error, exception = " + e); } } + + @Override + public void setConfig(Configuration conf) { + super.setConfig(conf); + } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/GPGOverviewBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/GPGOverviewBlock.java index 6e5e463d5f067..06617564ce666 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/GPGOverviewBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/GPGOverviewBlock.java @@ -18,8 +18,11 @@ package org.apache.hadoop.yarn.server.globalpolicygenerator.webapp; import java.util.Date; +import java.util.concurrent.TimeUnit; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.util.VersionInfo; +import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.globalpolicygenerator.GlobalPolicyGenerator; import org.apache.hadoop.yarn.util.YarnVersionInfo; import org.apache.hadoop.yarn.webapp.view.HtmlBlock; @@ -32,15 +35,51 @@ */ public class GPGOverviewBlock extends HtmlBlock { + private GlobalPolicyGenerator globalPolicyGenerator; + @Inject GPGOverviewBlock(GlobalPolicyGenerator gpg, ViewContext ctx) { super(ctx); + this.globalPolicyGenerator = gpg; } @Override protected void render(Block html) { + Configuration config = this.globalPolicyGenerator.getConfig(); + + String appCleaner = "disable"; + long appCleanerIntervalMs = config.getTimeDuration(YarnConfiguration.GPG_APPCLEANER_INTERVAL_MS, + YarnConfiguration.DEFAULT_GPG_APPCLEANER_INTERVAL_MS, TimeUnit.MILLISECONDS); + if (appCleanerIntervalMs > 0) { + appCleaner = "enable, interval : " + appCleanerIntervalMs + " ms"; + } + + String scCleaner = "disable"; + long scCleanerIntervalMs = config.getTimeDuration( + YarnConfiguration.GPG_SUBCLUSTER_CLEANER_INTERVAL_MS, + YarnConfiguration.DEFAULT_GPG_SUBCLUSTER_CLEANER_INTERVAL_MS, TimeUnit.MILLISECONDS); + if (scCleanerIntervalMs > 0) { + scCleaner = "enable, interval : " + scCleanerIntervalMs + " ms"; + } + + String pgGenerator = "disable"; + long policyGeneratorIntervalMillis = config.getTimeDuration( + YarnConfiguration.GPG_POLICY_GENERATOR_INTERVAL, + YarnConfiguration.DEFAULT_GPG_POLICY_GENERATOR_INTERVAL, TimeUnit.MILLISECONDS); + + if (policyGeneratorIntervalMillis > 0) { + pgGenerator = "enable, interval : " + policyGeneratorIntervalMillis + " ms"; + } + + String policy = config.get(YarnConfiguration.GPG_GLOBAL_POLICY_CLASS, + YarnConfiguration.DEFAULT_GPG_GLOBAL_POLICY_CLASS); + info("GPG Details") .__("GPG started on", new Date(GlobalPolicyGenerator.getGPGStartupTime())) + .__("GPG application cleaner", appCleaner) + .__("GPG subcluster cleaner", scCleaner) + .__("GPG policy generator", pgGenerator) + .__("GPG policy generator class", policy) .__("GPG Version", YarnVersionInfo.getVersion()) .__("Hadoop Version", VersionInfo.getVersion()); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/TestGPGWebApp.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/TestGPGWebApp.java index 94ac4cbbc8604..418a0716b4c8d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/TestGPGWebApp.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/webapp/TestGPGWebApp.java @@ -17,6 +17,7 @@ */ package org.apache.hadoop.yarn.server.globalpolicygenerator.webapp; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.server.globalpolicygenerator.GlobalPolicyGenerator; import org.apache.hadoop.yarn.webapp.test.WebAppTests; @@ -37,4 +38,14 @@ public void testGPGPoliciesPageWebView() WebAppTests.testPage(GPGPoliciesPage.class, GlobalPolicyGenerator.class, new GlobalPolicyGenerator()); } + + @Test + public void testGPGOverview() + throws InterruptedException, YarnException, IOException { + LOG.info("testGPGOverview."); + GlobalPolicyGenerator globalPolicyGenerator = new GlobalPolicyGenerator(); + globalPolicyGenerator.setConfig(new Configuration()); + WebAppTests.testPage(GPGOverviewPage.class, GlobalPolicyGenerator.class, + globalPolicyGenerator); + } }