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/CapacitySchedulerPage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
index 74b4e799d81..ec4715c7ee2 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
@@ -66,6 +66,7 @@
static final String Q_END = "left:101%";
static final String Q_GIVEN =
"left:0%;background:none;border:1px dashed #BFBFBF";
+ static final String Q_AUTO_CREATED = "background:#F4F0CB";
static final String Q_OVER = "background:#FFA333";
static final String Q_UNDER = "background:#5BD75B";
static final String ACTIVE_USER = "background:#FFFF00"; // Yellow highlight
@@ -283,9 +284,16 @@ public void render(Block html) {
absMaxCap = partitionQueueCapsInfo.getAbsoluteMaxCapacity() / 100;
absUsedCap = partitionQueueCapsInfo.getAbsoluteUsedCapacity() / 100;
+ boolean isAutoCreatedLeafQueue = info.isLeafQueue() ?
+ ((CapacitySchedulerLeafQueueInfo) info).isAutoCreatedLeafQueue()
+ : false;
+
+ String Q_WIDTH = width(absMaxCap * Q_MAX_WIDTH);
LI
> li = ul.
li().
- a(_Q).$style(width(absMaxCap * Q_MAX_WIDTH)).
+ a(_Q).$style(isAutoCreatedLeafQueue? join( Q_AUTO_CREATED, ";",
+ Q_WIDTH)
+ : Q_WIDTH).
$title(join("Absolute Capacity:", percent(absCap))).
span().$style(join(Q_GIVEN, ";font-size:1px;", width(absCap/absMaxCap))).
__('.').__().
@@ -297,7 +305,7 @@ public void render(Block html) {
__(join(percent(used), " used")).__();
csqinfo.qinfo = info;
- if (info.getQueues() == null) {
+ if (info.isLeafQueue()) {
li.ul("#lq").li().__(LeafQueueInfoBlock.class).__().__();
li.ul("#lq").li().__(QueueUsersInfoBlock.class).__().__();
} else {
@@ -406,6 +414,8 @@ public void render(Block html) {
__("Max Capacity").__().
span().$class("qlegend ui-corner-all").$style(ACTIVE_USER).
__("Users Requesting Resources").__().
+ span().$class("qlegend ui-corner-all").$style(Q_AUTO_CREATED).
+ __("Auto Created Queues").__().
__();
float used = 0;
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/CapacitySchedulerLeafQueueInfo.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/CapacitySchedulerLeafQueueInfo.java
index 7dcdf582225..32bae468389 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/CapacitySchedulerLeafQueueInfo.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/CapacitySchedulerLeafQueueInfo.java
@@ -26,7 +26,12 @@
import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceUsage;
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity
+ .AutoCreatedLeafQueue;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue;
+
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity
+ .ManagedParentQueue;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacities;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.UserInfo;
@@ -48,6 +53,7 @@
protected boolean preemptionDisabled;
protected String defaultNodeLabelExpression;
protected int defaultPriority;
+ protected boolean isAutoCreatedLeafQueue;
@XmlTransient
protected String orderingPolicyInfo;
@@ -81,6 +87,10 @@
.getPartitionResourceUsageInfo(RMNodeLabelsManager.NO_LABEL)
.getAMLimit();
}
+
+ if ( q instanceof AutoCreatedLeafQueue) {
+ isAutoCreatedLeafQueue = true;
+ }
}
@Override
@@ -153,4 +163,8 @@ public String getDefaultNodeLabelExpression() {
public int getDefaultApplicationPriority() {
return defaultPriority;
}
+
+ public boolean isAutoCreatedLeafQueue() {
+ return isAutoCreatedLeafQueue;
+ }
}
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/CapacitySchedulerQueueInfo.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/CapacitySchedulerQueueInfo.java
index 22705cc6c56..7872d1bdbf7 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/CapacitySchedulerQueueInfo.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/CapacitySchedulerQueueInfo.java
@@ -200,4 +200,8 @@ public QueueCapacitiesInfo getCapacities() {
public ResourcesInfo getResources() {
return resources;
}
+
+ public boolean isLeafQueue() {
+ return getQueues() == null;
+ }
}