You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by tg...@apache.org on 2012/04/03 22:43:08 UTC

svn commit: r1309137 - in /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project: ./ hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/ hadoop-yarn/hadoop-yarn-ser...

Author: tgraves
Date: Tue Apr  3 20:43:08 2012
New Revision: 1309137

URL: http://svn.apache.org/viewvc?rev=1309137&view=rev
Log:
merge -r 1309133:1309134 from branch-2. FIXES: MAPREDUCE-4020

Added:
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfoList.java
      - copied unchanged from r1309134, hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfoList.java
Modified:
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Tue Apr  3 20:43:08 2012
@@ -39,6 +39,9 @@ Release 0.23.3 - UNRELEASED
     MAPREDUCE-3999. Tracking link gives an error if the AppMaster hasn't
     started yet (Ravi Prakash via bobby)
 
+    MAPREDUCE-4020. Web services returns incorrect JSON for deep queue tree
+    (Anupam Seth via tgraves)
+
 Release 0.23.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java Tue Apr  3 20:43:08 2012
@@ -100,8 +100,8 @@ class CapacitySchedulerPage extends RmVi
     @Override
     public void render(Block html) {
       ArrayList<CapacitySchedulerQueueInfo> subQueues =
-          (csqinfo.qinfo == null) ? csqinfo.csinfo.getSubQueues()
-              : csqinfo.qinfo.getSubQueues();
+          (csqinfo.qinfo == null) ? csqinfo.csinfo.getQueues().getQueueInfoList()
+              : csqinfo.qinfo.getQueues().getQueueInfoList();
       UL<Hamlet> ul = html.ul("#pq");
       for (CapacitySchedulerQueueInfo info : subQueues) {
         float used = info.getUsedCapacity() / 100;
@@ -122,7 +122,7 @@ class CapacitySchedulerPage extends RmVi
               _(join(percent(used), " used"))._();
 
         csqinfo.qinfo = info;
-        if (info.getSubQueues() == null) {
+        if (info.getQueues() == null) {
           li.ul("#lq").li()._(LeafQueueInfoBlock.class)._()._();
         } else {
           li._(QueueBlock.class);

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java Tue Apr  3 20:43:08 2012
@@ -34,6 +34,7 @@ import org.apache.hadoop.yarn.server.res
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppsInfo;
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerInfo;
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfo;
+import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfoList;
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterInfo;
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterMetricsInfo;
 import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.FifoSchedulerInfo;
@@ -57,7 +58,7 @@ public class JAXBContextResolver impleme
       SchedulerTypeInfo.class, NodeInfo.class, UserMetricsInfo.class,
       CapacitySchedulerInfo.class, ClusterMetricsInfo.class,
       SchedulerInfo.class, AppsInfo.class, NodesInfo.class,
-      RemoteExceptionData.class};
+      RemoteExceptionData.class, CapacitySchedulerQueueInfoList.class};
 
   public JAXBContextResolver() throws Exception {
     this.types = new HashSet<Class>(Arrays.asList(cTypes));

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java Tue Apr  3 20:43:08 2012
@@ -18,8 +18,6 @@
 
 package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
 
-import java.util.ArrayList;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -38,7 +36,7 @@ public class CapacitySchedulerInfo exten
   protected float usedCapacity;
   protected float maxCapacity;
   protected String queueName;
-  protected ArrayList<CapacitySchedulerQueueInfo> queues;
+  protected CapacitySchedulerQueueInfoList queues;
 
   @XmlTransient
   static final float EPSILON = 1e-8f;
@@ -74,22 +72,22 @@ public class CapacitySchedulerInfo exten
     return this.queueName;
   }
 
-  public ArrayList<CapacitySchedulerQueueInfo> getSubQueues() {
+  public CapacitySchedulerQueueInfoList getQueues() {
     return this.queues;
   }
 
-  protected ArrayList<CapacitySchedulerQueueInfo> getQueues(CSQueue parent) {
+  protected CapacitySchedulerQueueInfoList getQueues(CSQueue parent) {
     CSQueue parentQueue = parent;
-    ArrayList<CapacitySchedulerQueueInfo> queuesInfo = new ArrayList<CapacitySchedulerQueueInfo>();
+    CapacitySchedulerQueueInfoList queuesInfo = new CapacitySchedulerQueueInfoList();
     for (CSQueue queue : parentQueue.getChildQueues()) {
       CapacitySchedulerQueueInfo info;
       if (queue instanceof LeafQueue) {
         info = new CapacitySchedulerLeafQueueInfo((LeafQueue)queue);
       } else {
         info = new CapacitySchedulerQueueInfo(queue);
-        info.subQueues = getQueues(queue);
+        info.queues = getQueues(queue);
       }
-      queuesInfo.add(info);
+      queuesInfo.addToQueueInfoList(info);
     }
     return queuesInfo;
   }

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java Tue Apr  3 20:43:08 2012
@@ -17,8 +17,6 @@
  */
 package org.apache.hadoop.yarn.server.resourcemanager.webapp.dao;
 
-import java.util.ArrayList;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -49,7 +47,7 @@ public class CapacitySchedulerQueueInfo 
   protected String usedResources;
   protected String queueName;
   protected QueueState state;
-  protected ArrayList<CapacitySchedulerQueueInfo> subQueues;
+  protected CapacitySchedulerQueueInfoList queues;
 
   CapacitySchedulerQueueInfo() {
   };
@@ -117,8 +115,8 @@ public class CapacitySchedulerQueueInfo 
     return this.queuePath;
   }
 
-  public ArrayList<CapacitySchedulerQueueInfo> getSubQueues() {
-    return this.subQueues;
+  public CapacitySchedulerQueueInfoList getQueues() {
+    return this.queues;
   }
 
   /**

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java Tue Apr  3 20:43:08 2012
@@ -149,7 +149,12 @@ public class TestRMWebServicesCapacitySc
     conf.setUserLimitFactor(B2, 100.0f);
     conf.setCapacity(B3, 20);
     conf.setUserLimitFactor(B3, 100.0f);
-
+    
+    conf.setQueues(A1, new String[] {"a1a", "a1b"});
+    final String A1A = A1 + ".a1a";
+    conf.setCapacity(A1A, 85);
+    final String A1B = A1 + ".a1b";
+    conf.setCapacity(A1B, 15);
   }
 
   @Before
@@ -230,12 +235,18 @@ public class TestRMWebServicesCapacitySc
           WebServicesTestUtils.getXmlFloat(element, "maxCapacity"),
           WebServicesTestUtils.getXmlString(element, "queueName"));
 
-      NodeList queues = element.getElementsByTagName("queues");
-      for (int j = 0; j < queues.getLength(); j++) {
-        Element qElem = (Element) queues.item(j);
-        String qName = WebServicesTestUtils.getXmlString(qElem, "queueName");
-        String q = CapacitySchedulerConfiguration.ROOT + "." + qName;
-        verifySubQueueXML(qElem, q, 100, 100);
+      NodeList children = element.getChildNodes();
+      for (int j = 0; j < children.getLength(); j++) {
+        Element qElem = (Element) children.item(j);
+        if(qElem.getTagName().equals("queues")) {
+          NodeList qListInfos = qElem.getChildNodes();
+          for (int k = 0; k < qListInfos.getLength(); k++) {
+            Element qElem2 = (Element) qListInfos.item(k);
+            String qName2 = WebServicesTestUtils.getXmlString(qElem2, "queueName");
+            String q2 = CapacitySchedulerConfiguration.ROOT + "." + qName2;
+            verifySubQueueXML(qElem2, q2, 100, 100);
+          }
+        }
       }
     }
   }
@@ -243,8 +254,18 @@ public class TestRMWebServicesCapacitySc
   public void verifySubQueueXML(Element qElem, String q, 
       float parentAbsCapacity, float parentAbsMaxCapacity)
       throws Exception {
-    NodeList queues = qElem.getElementsByTagName("subQueues");
-    QueueInfo qi = (queues != null) ? new QueueInfo() : new LeafQueueInfo();
+    NodeList children = qElem.getChildNodes();
+    boolean hasSubQueues = false;
+    for (int j = 0; j < children.getLength(); j++) {
+      Element qElem2 = (Element) children.item(j);
+      if(qElem2.getTagName().equals("queues")) {
+        NodeList qListInfos = qElem2.getChildNodes();
+        if (qListInfos.getLength() > 0) {
+          hasSubQueues = true;
+        }
+      }
+    }
+    QueueInfo qi = (hasSubQueues) ? new QueueInfo() : new LeafQueueInfo();
     qi.capacity = WebServicesTestUtils.getXmlFloat(qElem, "capacity");
     qi.usedCapacity =
         WebServicesTestUtils.getXmlFloat(qElem, "usedCapacity");
@@ -261,14 +282,18 @@ public class TestRMWebServicesCapacitySc
     qi.queueName = WebServicesTestUtils.getXmlString(qElem, "queueName");
     qi.state = WebServicesTestUtils.getXmlString(qElem, "state");
     verifySubQueueGeneric(q, qi, parentAbsCapacity, parentAbsMaxCapacity);
-
-    if (queues != null) {
-      for (int j = 0; j < queues.getLength(); j++) {
-        Element subqElem = (Element) queues.item(j);
-        String qName = WebServicesTestUtils.getXmlString(subqElem, "queueName");
-        String q2 = q + "." + qName;
-        verifySubQueueXML(subqElem, q2, 
-            qi.absoluteCapacity, qi.absoluteMaxCapacity);
+    if (hasSubQueues) {
+      for (int j = 0; j < children.getLength(); j++) {
+        Element qElem2 = (Element) children.item(j);
+        if(qElem2.getTagName().equals("queues")) {
+          NodeList qListInfos = qElem2.getChildNodes();
+          for (int k = 0; k < qListInfos.getLength(); k++) {
+            Element qElem3 = (Element) qListInfos.item(k);
+            String qName3 = WebServicesTestUtils.getXmlString(qElem3, "queueName");
+            String q3 = q + "." + qName3;
+            verifySubQueueXML(qElem3, q3, qi.absoluteCapacity, qi.absoluteMaxCapacity);
+          }
+        }
       }
     } else {
       LeafQueueInfo lqi = (LeafQueueInfo) qi;
@@ -305,7 +330,7 @@ public class TestRMWebServicesCapacitySc
         (float) info.getDouble("capacity"),
         (float) info.getDouble("maxCapacity"), info.getString("queueName"));
 
-    JSONArray arr = info.getJSONArray("queues");
+    JSONArray arr = info.getJSONObject("queues").getJSONArray("queue");
     assertEquals("incorrect number of elements", 2, arr.length());
 
     // test subqueues
@@ -331,7 +356,7 @@ public class TestRMWebServicesCapacitySc
       throws JSONException, Exception {
     int numExpectedElements = 11;
     boolean isParentQueue = true;
-    if (!info.has("subQueues")) {
+    if (!info.has("queues")) {
       numExpectedElements = 20;
       isParentQueue = false;
     }
@@ -352,7 +377,7 @@ public class TestRMWebServicesCapacitySc
     verifySubQueueGeneric(q, qi, parentAbsCapacity, parentAbsMaxCapacity);
 
     if (isParentQueue) {
-      JSONArray arr = info.getJSONArray("subQueues");
+      JSONArray arr = info.getJSONObject("queues").getJSONArray("queue");
       // test subqueues
       for (int i = 0; i < arr.length(); i++) {
         JSONObject obj = arr.getJSONObject(i);

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm?rev=1309137&r1=1309136&r2=1309137&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm Tue Apr  3 20:43:08 2012
@@ -324,7 +324,7 @@ ResourceManager REST API's.
 | queues | array of queues(JSON)/zero or more queue objects(XML) | A collection of queue resources|
 *---------------+--------------+-------------------------------+
 
-** Elements of the queues/subQueues object for a Parent queue
+** Elements of the queues object for a Parent queue
 
 *---------------+--------------+-------------------------------+
 || Item         || Data Type   || Description                   |
@@ -349,10 +349,10 @@ ResourceManager REST API's.
 *---------------+--------------+-------------------------------+
 | state | string of QueueState | The state of the queue |
 *---------------+--------------+-------------------------------+
-| subQueues | array of queues(JSON)/zero or more queue objects(XML) | A collection of sub-queue information|
+| queues | array of queues(JSON)/zero or more queue objects(XML) | A collection of sub-queue information|
 *---------------+--------------+-------------------------------+
 
-** Elements of the queues/subQueues object for a Leaf queue - contains all elements in parent plus the following:
+** Elements of the queues object for a Leaf queue - contains all elements in parent plus the following:
 
 *---------------+--------------+-------------------------------+
 || Item         || Data Type   || Description                   |
@@ -406,168 +406,190 @@ ResourceManager REST API's.
          "queueName" : "root",
          "maxCapacity" : 100,
          "type" : "capacityScheduler",
-         "queues" : [
-            {
-               "numPendingApplications" : 0,
-               "queueName" : "default",
-               "userLimitFactor" : 1,
-               "maxApplications" : 7000,
-               "usedCapacity" : 0,
-               "numContainers" : 0,
-               "state" : "RUNNING",
-               "maxCapacity" : 90,
-               "numApplications" : 0,
-               "usedResources" : "memory: 0",
-               "absoluteMaxCapacity" : 90,
-               "maxActiveApplications" : 1,
-               "numActiveApplications" : 0,
-               "absoluteUsedCapacity" : 0,
-               "userLimit" : 100,
-               "absoluteCapacity" : 70,
-               "maxActiveApplicationsPerUser" : 1,
-               "capacity" : 70,
-               "type" : "capacitySchedulerLeafQueueInfo",
-               "maxApplicationsPerUser" : 7000
-            },
-            {
-               "queueName" : "test",
-               "absoluteUsedCapacity" : 0,
-               "absoluteCapacity" : 20,
-               "usedCapacity" : 0,
-               "capacity" : 20,
-               "subQueues" : [
-                  {
-                     "numPendingApplications" : 0,
-                     "queueName" : "a1",
-                     "userLimitFactor" : 1,
-                     "maxApplications" : 1200,
-                     "usedCapacity" : 0,
-                     "numContainers" : 0,
-                     "state" : "RUNNING",
-                     "maxCapacity" : 80,
-                     "numApplications" : 0,
-                     "usedResources" : "memory: 0",
-                     "absoluteMaxCapacity" : 16.000002,
-                     "maxActiveApplications" : 1,
-                     "numActiveApplications" : 0,
-                     "absoluteUsedCapacity" : 0,
-                     "userLimit" : 100,
-                     "absoluteCapacity" : 12,
-                     "maxActiveApplicationsPerUser" : 1,
-                     "capacity" : 60.000004,
-                     "type" : "capacitySchedulerLeafQueueInfo",
-                     "maxApplicationsPerUser" : 1200
+         "queues" : {
+            "queue" : [
+               {
+                  "numPendingApplications" : 0,
+                  "queueName" : "default",
+                  "userLimitFactor" : 1,
+                  "maxApplications" : 1,
+                  "usedCapacity" : 0,
+                  "numContainers" : 0,
+                  "state" : "RUNNING",
+                  "maxCapacity" : 90,
+                  "numApplications" : 0,
+                  "usedResources" : "memory: 0",
+                  "absoluteMaxCapacity" : 90,
+                  "maxActiveApplications" : 1,
+                  "numActiveApplications" : 0,
+                  "absoluteUsedCapacity" : 0,
+                  "userLimit" : 100,
+                  "absoluteCapacity" : 70,
+                  "maxActiveApplicationsPerUser" : 1,
+                  "capacity" : 70,
+                  "type" : "capacitySchedulerLeafQueueInfo",
+                  "maxApplicationsPerUser" : 1
+               },
+               {
+                  "queueName" : "test",
+                  "absoluteCapacity" : 20,
+                  "usedCapacity" : 0,
+                  "capacity" : 20,
+                  "state" : "RUNNING",
+                  "maxCapacity" : 100,
+                  "numApplications" : 0,
+                  "usedResources" : "memory: 0",
+                  "absoluteMaxCapacity" : 100,
+                  "queues" : {
+                     "queue" : [
+                        {
+                           "queueName" : "a1",
+                           "absoluteCapacity" : 12,
+                           "usedCapacity" : 0,
+                           "capacity" : 60.000004,
+                           "state" : "RUNNING",
+                           "maxCapacity" : 100,
+                           "numApplications" : 0,
+                           "usedResources" : "memory: 0",
+                           "absoluteMaxCapacity" : 100,
+                           "queues" : {
+                              "queue" : [
+                                 {
+                                    "numPendingApplications" : 0,
+                                    "queueName" : "a11",
+                                    "userLimitFactor" : 1,
+                                    "maxApplications" : 0,
+                                    "usedCapacity" : 0,
+                                    "numContainers" : 0,
+                                    "state" : "RUNNING",
+                                    "maxCapacity" : 100,
+                                    "numApplications" : 0,
+                                    "usedResources" : "memory: 0",
+                                    "absoluteMaxCapacity" : 100,
+                                    "maxActiveApplications" : 1,
+                                    "numActiveApplications" : 0,
+                                    "absoluteUsedCapacity" : 0,
+                                    "userLimit" : 100,
+                                    "absoluteCapacity" : 10.200001,
+                                    "maxActiveApplicationsPerUser" : 1,
+                                    "capacity" : 85,
+                                    "type" : "capacitySchedulerLeafQueueInfo",
+                                    "maxApplicationsPerUser" : 0
+                                 },
+                                 {
+                                    "numPendingApplications" : 0,
+                                    "queueName" : "a12",
+                                    "userLimitFactor" : 1,
+                                    "maxApplications" : 0,
+                                    "usedCapacity" : 0,
+                                    "numContainers" : 0,
+                                    "state" : "RUNNING",
+                                    "maxCapacity" : 100,
+                                    "numApplications" : 0,
+                                    "usedResources" : "memory: 0",
+                                    "absoluteMaxCapacity" : 100,
+                                    "maxActiveApplications" : 1,
+                                    "numActiveApplications" : 0,
+                                    "absoluteUsedCapacity" : 0,
+                                    "userLimit" : 100,
+                                    "absoluteCapacity" : 1.8000001,
+                                    "maxActiveApplicationsPerUser" : 1,
+                                    "capacity" : 15.000001,
+                                    "type" : "capacitySchedulerLeafQueueInfo",
+                                    "maxApplicationsPerUser" : 0
+                                 }
+                              ]
+                           },
+                           "absoluteUsedCapacity" : 0
+                        },
+                        {
+                           "numPendingApplications" : 0,
+                           "queueName" : "a2",
+                           "userLimitFactor" : 1,
+                           "maxApplications" : 0,
+                           "usedCapacity" : 0,
+                           "numContainers" : 0,
+                           "state" : "RUNNING",
+                           "maxCapacity" : 100,
+                           "numApplications" : 0,
+                           "usedResources" : "memory: 0",
+                           "absoluteMaxCapacity" : 100,
+                           "maxActiveApplications" : 1,
+                           "numActiveApplications" : 0,
+                           "absoluteUsedCapacity" : 0,
+                           "userLimit" : 100,
+                           "absoluteCapacity" : 8.000001,
+                           "maxActiveApplicationsPerUser" : 1,
+                           "capacity" : 40,
+                           "type" : "capacitySchedulerLeafQueueInfo",
+                           "maxApplicationsPerUser" : 0
+                        }
+                     ]
                   },
-                  {
-                     "numPendingApplications" : 0,
-                     "queueName" : "a2",
-                     "userLimitFactor" : 1,
-                     "maxApplications" : 800,
-                     "usedCapacity" : 0,
-                     "numContainers" : 0,
-                     "state" : "RUNNING",
-                     "maxCapacity" : 100,
-                     "numApplications" : 0,
-                     "usedResources" : "memory: 0",
-                     "absoluteMaxCapacity" : 100,
-                     "maxActiveApplications" : 1,
-                     "numActiveApplications" : 0,
-                     "absoluteUsedCapacity" : 0,
-                     "userLimit" : 100,
-                     "absoluteCapacity" : 8.000001,
-                     "maxActiveApplicationsPerUser" : 1,
-                     "capacity" : 40,
-                     "type" : "capacitySchedulerLeafQueueInfo",
-                     "maxApplicationsPerUser" : 800
-                  }
-               ],
-               "state" : "RUNNING",
-               "maxCapacity" : 80,
-               "numApplications" : 0,
-               "usedResources" : "memory: 0",
-               "absoluteMaxCapacity" : 80
-            },
-            {
-               "queueName" : "test2",
-               "absoluteUsedCapacity" : 0,
-               "absoluteCapacity" : 10,
-               "usedCapacity" : 0,
-               "capacity" : 10,
-               "subQueues" : [
-                  {
-                     "numPendingApplications" : 0,
-                     "queueName" : "a5",
-                     "userLimitFactor" : 1,
-                     "maxApplications" : 500,
-                     "usedCapacity" : 0,
-                     "numContainers" : 0,
-                     "state" : "RUNNING",
-                     "maxCapacity" : 100,
-                     "numApplications" : 0,
-                     "usedResources" : "memory: 0",
-                     "absoluteMaxCapacity" : 100,
-                     "maxActiveApplications" : 1,
-                     "numActiveApplications" : 0,
-                     "absoluteUsedCapacity" : 0,
-                     "userLimit" : 100,
-                     "absoluteCapacity" : 5,
-                     "maxActiveApplicationsPerUser" : 1,
-                     "capacity" : 50,
-                     "type" : "capacitySchedulerLeafQueueInfo",
-                     "maxApplicationsPerUser" : 500
+                  "absoluteUsedCapacity" : 0
+               },
+               {
+                  "queueName" : "test2",
+                  "absoluteCapacity" : 10,
+                  "usedCapacity" : 0,
+                  "capacity" : 10,
+                  "state" : "RUNNING",
+                  "maxCapacity" : 15.000001,
+                  "numApplications" : 0,
+                  "usedResources" : "memory: 0",
+                  "absoluteMaxCapacity" : 15.000001,
+                  "queues" : {
+                     "queue" : [
+                        {
+                           "numPendingApplications" : 0,
+                           "queueName" : "a3",
+                           "userLimitFactor" : 1,
+                           "maxApplications" : 0,
+                           "usedCapacity" : 0,
+                           "numContainers" : 0,
+                           "state" : "RUNNING",
+                           "maxCapacity" : 100,
+                           "numApplications" : 0,
+                           "usedResources" : "memory: 0",
+                           "absoluteMaxCapacity" : 15.000001,
+                           "maxActiveApplications" : 1,
+                           "numActiveApplications" : 0,
+                           "absoluteUsedCapacity" : 0,
+                           "userLimit" : 100,
+                           "absoluteCapacity" : 9,
+                           "maxActiveApplicationsPerUser" : 1,
+                           "capacity" : 90,
+                           "type" : "capacitySchedulerLeafQueueInfo",
+                           "maxApplicationsPerUser" : 0
+                        },
+                        {
+                           "numPendingApplications" : 0,
+                           "queueName" : "a4",
+                           "userLimitFactor" : 1,
+                           "maxApplications" : 0,
+                           "usedCapacity" : 0,
+                           "numContainers" : 0,
+                           "state" : "RUNNING",
+                           "maxCapacity" : 100,
+                           "numApplications" : 0,
+                           "usedResources" : "memory: 0",
+                           "absoluteMaxCapacity" : 15.000001,
+                           "maxActiveApplications" : 1,
+                           "numActiveApplications" : 0,
+                           "absoluteUsedCapacity" : 0,
+                           "userLimit" : 100,
+                           "absoluteCapacity" : 1.0000001,
+                           "maxActiveApplicationsPerUser" : 1,
+                           "capacity" : 10,
+                           "type" : "capacitySchedulerLeafQueueInfo",
+                           "maxApplicationsPerUser" : 0
+                        }
+                     ]
                   },
-                  {
-                     "numPendingApplications" : 0,
-                     "queueName" : "a3",
-                     "userLimitFactor" : 1,
-                     "maxApplications" : 400,
-                     "usedCapacity" : 0,
-                     "numContainers" : 0,
-                     "state" : "RUNNING",
-                     "maxCapacity" : 100,
-                     "numApplications" : 0,
-                     "usedResources" : "memory: 0",
-                     "absoluteMaxCapacity" : 100,
-                     "maxActiveApplications" : 1,
-                     "numActiveApplications" : 0,
-                     "absoluteUsedCapacity" : 0,
-                     "userLimit" : 100,
-                     "absoluteCapacity" : 4.0000005,
-                     "maxActiveApplicationsPerUser" : 1,
-                     "capacity" : 40,
-                     "type" : "capacitySchedulerLeafQueueInfo",
-                     "maxApplicationsPerUser" : 400
-                  },
-                  {
-                     "numPendingApplications" : 0,
-                     "queueName" : "a4",
-                     "userLimitFactor" : 1,
-                     "maxApplications" : 100,
-                     "usedCapacity" : 0,
-                     "numContainers" : 0,
-                     "state" : "RUNNING",
-                     "maxCapacity" : 100,
-                     "numApplications" : 0,
-                     "usedResources" : "memory: 0",
-                     "absoluteMaxCapacity" : 100,
-                     "maxActiveApplications" : 1,
-                     "numActiveApplications" : 0,
-                     "absoluteUsedCapacity" : 0,
-                     "userLimit" : 100,
-                     "absoluteCapacity" : 1.0000001,
-                     "maxActiveApplicationsPerUser" : 1,
-                     "capacity" : 10,
-                     "type" : "capacitySchedulerLeafQueueInfo",
-                     "maxApplicationsPerUser" : 100
-                  }
-               ],
-               "state" : "RUNNING",
-               "maxCapacity" : 15.000001,
-               "numApplications" : 0,
-               "usedResources" : "memory: 0",
-               "absoluteMaxCapacity" : 15.000001
-            }
-         ],
+                  "absoluteUsedCapacity" : 0
+               }
+            ]
+         },
          "usedCapacity" : 0,
          "capacity" : 100
       }
@@ -575,7 +597,7 @@ ResourceManager REST API's.
 }
 +---+
 
-  <<JSON response>>
+  <<XML response>>
 
   HTTP Request:
 
@@ -603,155 +625,175 @@ ResourceManager REST API's.
     <usedCapacity>0.0</usedCapacity>
     <maxCapacity>100.0</maxCapacity>
     <queueName>root</queueName>
-    <queues xsi:type="capacitySchedulerLeafQueueInfo">
-      <capacity>70.0</capacity>
-      <usedCapacity>0.0</usedCapacity>
-      <maxCapacity>90.0</maxCapacity>
-      <absoluteCapacity>70.0</absoluteCapacity>
-      <absoluteMaxCapacity>90.0</absoluteMaxCapacity>
-      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
-      <numApplications>0</numApplications>
-      <usedResources>memory: 0</usedResources>
-      <queueName>default</queueName>
-      <state>RUNNING</state>
-      <numActiveApplications>0</numActiveApplications>
-      <numPendingApplications>0</numPendingApplications>
-      <numContainers>0</numContainers>
-      <maxApplications>7000</maxApplications>
-      <maxApplicationsPerUser>7000</maxApplicationsPerUser>
-      <maxActiveApplications>1</maxActiveApplications>
-      <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
-      <userLimit>100</userLimit>
-      <userLimitFactor>1.0</userLimitFactor>
-    </queues>
     <queues>
-      <capacity>20.0</capacity>
-      <usedCapacity>0.0</usedCapacity>
-      <maxCapacity>80.0</maxCapacity>
-      <absoluteCapacity>20.0</absoluteCapacity>
-      <absoluteMaxCapacity>80.0</absoluteMaxCapacity>
-      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
-      <numApplications>0</numApplications>
-      <usedResources>memory: 0</usedResources>
-      <queueName>test</queueName>
-      <state>RUNNING</state>
-      <subQueues xsi:type="capacitySchedulerLeafQueueInfo">
-        <capacity>60.000004</capacity>
+      <queue xsi:type="capacitySchedulerLeafQueueInfo">
+        <capacity>70.0</capacity>
         <usedCapacity>0.0</usedCapacity>
-        <maxCapacity>80.0</maxCapacity>
-        <absoluteCapacity>12.0</absoluteCapacity>
-        <absoluteMaxCapacity>16.000002</absoluteMaxCapacity>
+        <maxCapacity>90.0</maxCapacity>
+        <absoluteCapacity>70.0</absoluteCapacity>
+        <absoluteMaxCapacity>90.0</absoluteMaxCapacity>
         <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
-        <queueName>a1</queueName>
+        <queueName>default</queueName>
         <state>RUNNING</state>
         <numActiveApplications>0</numActiveApplications>
         <numPendingApplications>0</numPendingApplications>
         <numContainers>0</numContainers>
-        <maxApplications>1200</maxApplications>
-        <maxApplicationsPerUser>1200</maxApplicationsPerUser>
+        <maxApplications>1</maxApplications>
+        <maxApplicationsPerUser>1</maxApplicationsPerUser>
         <maxActiveApplications>1</maxActiveApplications>
         <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
         <userLimit>100</userLimit>
         <userLimitFactor>1.0</userLimitFactor>
-      </subQueues>
-      <subQueues xsi:type="capacitySchedulerLeafQueueInfo">
-        <capacity>40.0</capacity>
+      </queue>
+      <queue>
+        <capacity>20.0</capacity>
         <usedCapacity>0.0</usedCapacity>
         <maxCapacity>100.0</maxCapacity>
-        <absoluteCapacity>8.000001</absoluteCapacity>
+        <absoluteCapacity>20.0</absoluteCapacity>
         <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
         <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
-        <queueName>a2</queueName>
+        <queueName>test</queueName>
         <state>RUNNING</state>
-        <numActiveApplications>0</numActiveApplications>
-        <numPendingApplications>0</numPendingApplications>
-        <numContainers>0</numContainers>
-        <maxApplications>800</maxApplications>
-        <maxApplicationsPerUser>800</maxApplicationsPerUser>
-        <maxActiveApplications>1</maxActiveApplications>
-        <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
-        <userLimit>100</userLimit>
-        <userLimitFactor>1.0</userLimitFactor>
-      </subQueues>
-    </queues>
-    <queues>
-      <capacity>10.0</capacity>
-      <usedCapacity>0.0</usedCapacity>
-      <maxCapacity>15.000001</maxCapacity>
-      <absoluteCapacity>10.0</absoluteCapacity>
-      <absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
-      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
-      <numApplications>0</numApplications>
-      <usedResources>memory: 0</usedResources>
-     <queueName>test2</queueName>
-      <state>RUNNING</state>
-      <subQueues xsi:type="capacitySchedulerLeafQueueInfo">
-        <capacity>50.0</capacity>
-        <usedCapacity>0.0</usedCapacity>
-        <maxCapacity>100.0</maxCapacity>
-        <absoluteCapacity>5.0</absoluteCapacity>
-        <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
-        <numApplications>0</numApplications>
-        <usedResources>memory: 0</usedResources>
-        <queueName>A4</queueName>
-        <state>RUNNING</state>
-        <numActiveApplications>0</numActiveApplications>
-        <numPendingApplications>0</numPendingApplications>
-        <numContainers>0</numContainers>
-        <maxApplications>500</maxApplications>
-        <maxApplicationsPerUser>500</maxApplicationsPerUser>
-        <maxActiveApplications>1</maxActiveApplications>
-        <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
-        <userLimit>100</userLimit>
-        <userLimitFactor>1.0</userLimitFactor>
-      </subQueues>
-      <subQueues xsi:type="capacitySchedulerLeafQueueInfo">
-        <capacity>40.0</capacity>
-        <usedCapacity>0.0</usedCapacity>
-        <maxCapacity>100.0</maxCapacity>
-        <absoluteCapacity>4.0000005</absoluteCapacity>
-        <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
-        <numApplications>0</numApplications>
-        <usedResources>memory: 0</usedResources>
-        <queueName>a3</queueName>
-        <state>RUNNING</state>
-        <numActiveApplications>0</numActiveApplications>
-        <numPendingApplications>0</numPendingApplications>
-        <numContainers>0</numContainers>
-        <maxApplications>400</maxApplications>
-        <maxApplicationsPerUser>400</maxApplicationsPerUser>
-        <maxActiveApplications>1</maxActiveApplications>
-        <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
-        <userLimit>100</userLimit>
-        <userLimitFactor>1.0</userLimitFactor>
-      </subQueues>
-      <subQueues xsi:type="capacitySchedulerLeafQueueInfo">
+        <queues>
+          <queue>
+            <capacity>60.000004</capacity>
+            <usedCapacity>0.0</usedCapacity>
+            <maxCapacity>100.0</maxCapacity>
+            <absoluteCapacity>12.0</absoluteCapacity>
+            <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
+            <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+            <numApplications>0</numApplications>
+            <usedResources>memory: 0</usedResources>
+            <queueName>a1</queueName>
+            <state>RUNNING</state>
+            <queues>
+              <queue xsi:type="capacitySchedulerLeafQueueInfo">
+                <capacity>85.0</capacity>
+                <usedCapacity>0.0</usedCapacity>
+                <maxCapacity>100.0</maxCapacity>
+                <absoluteCapacity>10.200001</absoluteCapacity>
+                <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
+                <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+                <numApplications>0</numApplications>
+                <usedResources>memory: 0</usedResources>
+                <queueName>a11</queueName>
+                <state>RUNNING</state>
+                <numActiveApplications>0</numActiveApplications>
+                <numPendingApplications>0</numPendingApplications>
+                <numContainers>0</numContainers>
+                <maxApplications>0</maxApplications>
+                <maxApplicationsPerUser>0</maxApplicationsPerUser>
+                <maxActiveApplications>1</maxActiveApplications>
+                <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
+                <userLimit>100</userLimit>
+                <userLimitFactor>1.0</userLimitFactor>
+              </queue>
+              <queue xsi:type="capacitySchedulerLeafQueueInfo">
+                <capacity>15.000001</capacity>
+                <usedCapacity>0.0</usedCapacity>
+                <maxCapacity>100.0</maxCapacity>
+                <absoluteCapacity>1.8000001</absoluteCapacity>
+                <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
+                <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+                <numApplications>0</numApplications>
+                <usedResources>memory: 0</usedResources>
+                <queueName>a12</queueName>
+                <state>RUNNING</state>
+                <numActiveApplications>0</numActiveApplications>
+                <numPendingApplications>0</numPendingApplications>
+                <numContainers>0</numContainers>
+                <maxApplications>0</maxApplications>
+                <maxApplicationsPerUser>0</maxApplicationsPerUser>
+                <maxActiveApplications>1</maxActiveApplications>
+                <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
+                <userLimit>100</userLimit>
+                <userLimitFactor>1.0</userLimitFactor>
+              </queue>
+            </queues>
+          </queue>
+          <queue xsi:type="capacitySchedulerLeafQueueInfo">
+            <capacity>40.0</capacity>
+            <usedCapacity>0.0</usedCapacity>
+            <maxCapacity>100.0</maxCapacity>
+            <absoluteCapacity>8.000001</absoluteCapacity>
+            <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
+            <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+            <numApplications>0</numApplications>
+            <usedResources>memory: 0</usedResources>
+            <queueName>a2</queueName>
+            <state>RUNNING</state>
+            <numActiveApplications>0</numActiveApplications>
+            <numPendingApplications>0</numPendingApplications>
+            <numContainers>0</numContainers>
+            <maxApplications>0</maxApplications>
+            <maxApplicationsPerUser>0</maxApplicationsPerUser>
+            <maxActiveApplications>1</maxActiveApplications>
+            <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
+            <userLimit>100</userLimit>
+            <userLimitFactor>1.0</userLimitFactor>
+          </queue>
+        </queues>
+      </queue>
+      <queue>
         <capacity>10.0</capacity>
         <usedCapacity>0.0</usedCapacity>
-        <maxCapacity>100.0</maxCapacity>
-        <absoluteCapacity>1.0000001</absoluteCapacity>
-        <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
+        <maxCapacity>15.000001</maxCapacity>
+        <absoluteCapacity>10.0</absoluteCapacity>
+        <absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
         <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
-        <queueName>a4</queueName>
+        <queueName>test2</queueName>
         <state>RUNNING</state>
-        <numActiveApplications>0</numActiveApplications>
-        <numPendingApplications>0</numPendingApplications>
-        <numContainers>0</numContainers>
-        <maxApplications>100</maxApplications>
-        <maxApplicationsPerUser>100</maxApplicationsPerUser>
-        <maxActiveApplications>1</maxActiveApplications>
-        <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
-        <userLimit>100</userLimit>
-        <userLimitFactor>1.0</userLimitFactor>
-      </subQueues>
+        <queues>
+          <queue xsi:type="capacitySchedulerLeafQueueInfo">
+            <capacity>90.0</capacity>
+            <usedCapacity>0.0</usedCapacity>
+            <maxCapacity>100.0</maxCapacity>
+            <absoluteCapacity>9.0</absoluteCapacity>
+            <absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
+            <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+            <numApplications>0</numApplications>
+            <usedResources>memory: 0</usedResources>
+            <queueName>a3</queueName>
+            <state>RUNNING</state>
+            <numActiveApplications>0</numActiveApplications>
+            <numPendingApplications>0</numPendingApplications>
+            <numContainers>0</numContainers>
+            <maxApplications>0</maxApplications>
+            <maxApplicationsPerUser>0</maxApplicationsPerUser>
+            <maxActiveApplications>1</maxActiveApplications>
+            <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
+            <userLimit>100</userLimit>
+            <userLimitFactor>1.0</userLimitFactor>
+          </queue>
+          <queue xsi:type="capacitySchedulerLeafQueueInfo">
+            <capacity>10.0</capacity>
+            <usedCapacity>0.0</usedCapacity>
+            <maxCapacity>100.0</maxCapacity>
+            <absoluteCapacity>1.0000001</absoluteCapacity>
+            <absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
+            <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
+            <numApplications>0</numApplications>
+            <usedResources>memory: 0</usedResources>
+            <queueName>a4</queueName>
+            <state>RUNNING</state>
+            <numActiveApplications>0</numActiveApplications>
+            <numPendingApplications>0</numPendingApplications>
+            <numContainers>0</numContainers>
+            <maxApplications>0</maxApplications>
+            <maxApplicationsPerUser>0</maxApplicationsPerUser>
+            <maxActiveApplications>1</maxActiveApplications>
+            <maxActiveApplicationsPerUser>1</maxActiveApplicationsPerUser>
+            <userLimit>100</userLimit>
+            <userLimitFactor>1.0</userLimitFactor>
+          </queue>
+        </queues>
+      </queue>
     </queues>
   </schedulerInfo>
 </scheduler>