|
@@ -79,7 +79,8 @@ public class TestParentQueue {
|
|
|
YarnConfiguration conf;
|
|
|
CapacitySchedulerConfiguration csConf;
|
|
|
CapacitySchedulerContext csContext;
|
|
|
-
|
|
|
+ CapacitySchedulerQueueContext queueContext;
|
|
|
+
|
|
|
final static int GB = 1024;
|
|
|
final static String DEFAULT_RACK = "/default";
|
|
|
|
|
@@ -105,6 +106,10 @@ public class TestParentQueue {
|
|
|
when(csContext.getResourceCalculator()).
|
|
|
thenReturn(resourceComparator);
|
|
|
when(csContext.getRMContext()).thenReturn(rmContext);
|
|
|
+ when(csContext.getCapacitySchedulerQueueManager()).thenReturn(
|
|
|
+ new CapacitySchedulerQueueManager(csConf, rmContext.getNodeLabelManager(), null));
|
|
|
+
|
|
|
+ queueContext = new CapacitySchedulerQueueContext(csContext);
|
|
|
}
|
|
|
|
|
|
private static final String A = "a";
|
|
@@ -121,6 +126,8 @@ public class TestParentQueue {
|
|
|
conf.setCapacity(Q_A, 30);
|
|
|
|
|
|
conf.setCapacity(Q_B, 70);
|
|
|
+
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
LOG.info("Setup top-level queues a and b");
|
|
|
}
|
|
@@ -137,6 +144,8 @@ public class TestParentQueue {
|
|
|
conf.setMinimumResourceRequirement("", new QueuePath(Q_B),
|
|
|
QUEUE_B_RESOURCE);
|
|
|
|
|
|
+ queueContext.reinitialize();
|
|
|
+
|
|
|
LOG.info("Setup top-level queues a and b with absolute resource");
|
|
|
}
|
|
|
|
|
@@ -253,7 +262,7 @@ public class TestParentQueue {
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
CSQueue root =
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -371,11 +380,12 @@ public class TestParentQueue {
|
|
|
setupSingleLevelQueues(csConf);
|
|
|
csConf.setCapacity(Q_A, 30);
|
|
|
csConf.setCapacity(Q_B, 70.5F);
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
boolean exceptionOccurred = false;
|
|
|
try {
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
} catch (IOException ie) {
|
|
@@ -386,10 +396,11 @@ public class TestParentQueue {
|
|
|
}
|
|
|
csConf.setCapacity(Q_A, 30);
|
|
|
csConf.setCapacity(Q_B, 70);
|
|
|
+ queueContext.reinitialize();
|
|
|
exceptionOccurred = false;
|
|
|
queues.clear();
|
|
|
try {
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
} catch (IllegalArgumentException ie) {
|
|
@@ -400,10 +411,11 @@ public class TestParentQueue {
|
|
|
}
|
|
|
csConf.setCapacity(Q_A, 30);
|
|
|
csConf.setCapacity(Q_B, 70.005F);
|
|
|
+ queueContext.reinitialize();
|
|
|
exceptionOccurred = false;
|
|
|
queues.clear();
|
|
|
try {
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
} catch (IllegalArgumentException ie) {
|
|
@@ -470,6 +482,7 @@ public class TestParentQueue {
|
|
|
conf.setQueues(Q_C111, new String[] {C1111});
|
|
|
final String Q_C1111= Q_C111 + "." + C1111;
|
|
|
conf.setCapacity(Q_C1111, 100);
|
|
|
+ queueContext.reinitialize();
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -495,7 +508,7 @@ public class TestParentQueue {
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
CSQueue root =
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -657,9 +670,10 @@ public class TestParentQueue {
|
|
|
csConf.setCapacity(Q_B + "." + B1, 0);
|
|
|
csConf.setCapacity(Q_B + "." + B2, 0);
|
|
|
csConf.setCapacity(Q_B + "." + B3, 0);
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
}
|
|
@@ -672,9 +686,10 @@ public class TestParentQueue {
|
|
|
// set parent capacity to 0 when child not 0
|
|
|
csConf.setCapacity(Q_B, 0);
|
|
|
csConf.setCapacity(Q_A, 60);
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
}
|
|
@@ -690,8 +705,9 @@ public class TestParentQueue {
|
|
|
csConf.setCapacity(Q_B, 0);
|
|
|
csConf.setCapacity(Q_A, 60);
|
|
|
csConf.setAllowZeroCapacitySum(Q_B, true);
|
|
|
+ queueContext.reinitialize();
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
}
|
|
@@ -710,8 +726,9 @@ public class TestParentQueue {
|
|
|
csConf.setCapacity(Q_B + "." + B2, 20);
|
|
|
csConf.setCapacity(Q_B + "." + B3, 20);
|
|
|
csConf.setAllowZeroCapacitySum(Q_B, true);
|
|
|
+ queueContext.reinitialize();
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
}
|
|
@@ -730,8 +747,9 @@ public class TestParentQueue {
|
|
|
csConf.setCapacity(Q_B + "." + B2, 0);
|
|
|
csConf.setCapacity(Q_B + "." + B3, 0);
|
|
|
csConf.setAllowZeroCapacitySum(Q_B, true);
|
|
|
+ queueContext.reinitialize();
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
}
|
|
@@ -746,12 +764,12 @@ public class TestParentQueue {
|
|
|
csConf.setCapacity(Q_B + "." + B1, 0);
|
|
|
csConf.setCapacity(Q_B + "." + B2, 0);
|
|
|
csConf.setCapacity(Q_B + "." + B3, 0);
|
|
|
-
|
|
|
csConf.setCapacity(Q_A, 60);
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
try {
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
} catch (IllegalArgumentException e) {
|
|
@@ -767,7 +785,7 @@ public class TestParentQueue {
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
CSQueue root =
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -849,7 +867,7 @@ public class TestParentQueue {
|
|
|
//B3
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
CSQueue root =
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -948,10 +966,11 @@ public class TestParentQueue {
|
|
|
csConf.setAcl(Q_C, QueueACL.ADMINISTER_QUEUE, "*");
|
|
|
final String Q_C11= Q_C + "." + C1 + "." + C11;
|
|
|
csConf.setAcl(Q_C11, QueueACL.SUBMIT_APPLICATIONS, "*");
|
|
|
+ queueContext.reinitialize();
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
CSQueue root =
|
|
|
- CapacitySchedulerQueueManager.parseQueue(csContext, csConf, null,
|
|
|
+ CapacitySchedulerQueueManager.parseQueue(queueContext, csConf, null,
|
|
|
CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
YarnAuthorizationProvider authorizer =
|
|
@@ -1014,7 +1033,7 @@ public class TestParentQueue {
|
|
|
setupSingleLevelQueuesWithAbsoluteResource(csConf);
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CSQueue root = CapacitySchedulerQueueManager.parseQueue(csContext, csConf,
|
|
|
+ CSQueue root = CapacitySchedulerQueueManager.parseQueue(queueContext, csConf,
|
|
|
null, CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -1085,7 +1104,7 @@ public class TestParentQueue {
|
|
|
setupSingleLevelQueuesWithAbsoluteResource(csConf);
|
|
|
|
|
|
CSQueueStore queues = new CSQueueStore();
|
|
|
- CSQueue root = CapacitySchedulerQueueManager.parseQueue(csContext, csConf,
|
|
|
+ CSQueue root = CapacitySchedulerQueueManager.parseQueue(queueContext, csConf,
|
|
|
null, CapacitySchedulerConfiguration.ROOT, queues, queues,
|
|
|
TestUtils.spyHook);
|
|
|
|
|
@@ -1138,6 +1157,7 @@ public class TestParentQueue {
|
|
|
|
|
|
// Set GlobalMaximumApplicationsPerQueue in csConf
|
|
|
csConf.setGlobalMaximumApplicationsPerQueue(8000);
|
|
|
+ queueContext.reinitialize();
|
|
|
root.updateClusterResource(clusterResource,
|
|
|
new ResourceLimits(clusterResource));
|
|
|
|
|
@@ -1155,6 +1175,7 @@ public class TestParentQueue {
|
|
|
Integer.toString(queueAMaxApplications));
|
|
|
csConf.set("yarn.scheduler.capacity." + Q_B + ".maximum-applications",
|
|
|
Integer.toString(queueBMaxApplications));
|
|
|
+ queueContext.reinitialize();
|
|
|
root.updateClusterResource(clusterResource,
|
|
|
new ResourceLimits(clusterResource));
|
|
|
|