Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java (revision 1599314) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/FairSchedulerPage.java (working copy) @@ -47,7 +47,10 @@ static final String Q_GIVEN = "left:0%;background:none;border:1px dashed rgba(0,0,0,0.25)"; static final String Q_OVER = "background:rgba(255, 140, 0, 0.8)"; static final String Q_UNDER = "background:rgba(50, 205, 50, 0.8)"; - + static final String Q_UNDER_MIN_SHARE = "display:none"; + static final String Q_OVER_MIN_SHARE = "left:0%;top:-11%;background:none;border:2px solid rgba(0, 132, 180, 0.8)"; + static final String Q_AT_MAX_SHARE = "left:0%;top:-11%;background:none;border:2px solid rgba(204, 0, 0, 0.7)"; + @RequestScoped static class FSQInfo { FairSchedulerQueueInfo qinfo; @@ -74,7 +77,7 @@ ri._("Max Running Applications:", qinfo.getMaxApplications()); } ri._("Fair Share:", qinfo.getFairShare().toString()); - + html._(InfoBlock.class); // clear the info contents so this queue's info doesn't accumulate into another queue's info @@ -96,7 +99,11 @@ for (FairSchedulerQueueInfo info : subQueues) { float capacity = info.getMaxResourcesFraction(); float fairShare = info.getFairShareMemoryFraction(); + float minShare = info.getMinShareMemoryFraction(); + float maxShare = info.getMaxResourcesFraction(); float used = info.getUsedMemoryFraction(); + String borderColor = used < minShare || minShare == 0f ? Q_UNDER_MIN_SHARE : Q_OVER_MIN_SHARE; + borderColor = used >= maxShare ? Q_AT_MAX_SHARE : borderColor; LI