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/dao/ClusterInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterInfo.java index 4596f37f1e3e0..3d16b8cb5382e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ClusterInfo.java @@ -24,6 +24,7 @@ import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.service.Service.STATE; import org.apache.hadoop.util.VersionInfo; +import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; import org.apache.hadoop.yarn.util.YarnVersionInfo; @@ -45,6 +46,7 @@ public class ClusterInfo { protected String haZooKeeperConnectionState; private String subClusterId; + private boolean schedulerUiEnabled; public ClusterInfo() { } // JAXB needs this @@ -66,6 +68,10 @@ public ClusterInfo(ResourceManager rm) { this.hadoopVersionBuiltOn = VersionInfo.getDate(); this.haZooKeeperConnectionState = rm.getRMContext().getHAZookeeperConnectionState(); + this.schedulerUiEnabled = rm.getConfig().getBoolean( + YarnConfiguration.YARN_WEBAPP_SCHEDULER_UI_ENABLE, + YarnConfiguration.DEFAULT_YARN_WEBAPP_SCHEDULER_UI_ENABLE + ); } public String getState() { @@ -123,4 +129,12 @@ public String getSubClusterId() { public void setSubClusterId(String subClusterId) { this.subClusterId = subClusterId; } + + public boolean isSchedulerUiEnabled() { + return schedulerUiEnabled; + } + + public void setSchedulerUiEnabled(boolean schedulerUiEnabled) { + this.schedulerUiEnabled = schedulerUiEnabled; + } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java index ebfc4e341c9fb..015dc28cf379e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java @@ -345,7 +345,7 @@ public void verifyClusterInfo(JSONObject json) throws JSONException, Exception { assertEquals(1, json.length(), "incorrect number of elements"); JSONObject info = json.getJSONObject("clusterInfo"); - assertEquals(12, info.length(), "incorrect number of elements"); + assertEquals(13, info.length(), "incorrect number of elements"); verifyClusterGeneric(info.getLong("id"), info.getLong("startedOn"), info.getString("state"), info.getString("haState"), info.getString("haZooKeeperConnectionState"), @@ -354,7 +354,6 @@ public void verifyClusterInfo(JSONObject json) throws JSONException, info.getString("resourceManagerVersionBuiltOn"), info.getString("resourceManagerBuildVersion"), info.getString("resourceManagerVersion")); - } public void verifyClusterGeneric(long clusterid, long startedon, diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js index 34702aca2df24..8d0550c0840a6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js @@ -79,5 +79,12 @@ export default Ember.Controller.extend({ return this.model.timelineHealth.get('isTimelineUnHealthy'); } return true; - }.property('model.timelineHealth') + }.property('model.timelineHealth'), + + isSchedulerUiEnabled: function() { + if (this.model && this.model.clusterInfo) { + return this.model.clusterInfo.get('firstObject').get('schedulerUiEnabled'); + } + return false; + }.property('model.isSchedulerUiEnabled') }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js index c1a095a7740e1..193b98bb2a8bf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js @@ -30,5 +30,6 @@ export default DS.Model.extend({ hadoopVersionBuiltOn: DS.attr('string'), getYARNBuildHash: function() { return this.get("hadoopVersion") + " from " + this.get("resourceManagerBuildVersion").split(" ")[2]; - }.property("yarnHash") + }.property("yarnHash"), + schedulerUiEnabled: DS.attr('string') }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs index 1d469d9ce80ef..9e08934892aab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs @@ -71,6 +71,9 @@ (current) {{/link-to}} {{/link-to}} + {{#if isSchedulerUiEnabled}} +
  • Scheduler UI
  • + {{/if}} {{#if userInfo}}