YARN-10260. Allow transitioning queue from DRAINING to RUNNING state. Contributed by Bilwa S T
This commit is contained in:
parent
936bf09c37
commit
fff1d2c122
@ -1359,10 +1359,6 @@ public void activeQueue() throws YarnException {
|
|||||||
if (getState() == QueueState.RUNNING) {
|
if (getState() == QueueState.RUNNING) {
|
||||||
LOG.info("The specified queue:" + getQueuePath()
|
LOG.info("The specified queue:" + getQueuePath()
|
||||||
+ " is already in the RUNNING state.");
|
+ " is already in the RUNNING state.");
|
||||||
} else if (getState() == QueueState.DRAINING) {
|
|
||||||
throw new YarnException(
|
|
||||||
"The queue:" + getQueuePath() + " is in the Stopping process. "
|
|
||||||
+ "Please wait for the queue getting fully STOPPED.");
|
|
||||||
} else {
|
} else {
|
||||||
CSQueue parent = getParent();
|
CSQueue parent = getParent();
|
||||||
if (parent == null || parent.getState() == QueueState.RUNNING) {
|
if (parent == null || parent.getState() == QueueState.RUNNING) {
|
||||||
|
@ -157,6 +157,23 @@ public void testQueueStateTransit() throws Exception {
|
|||||||
Assert.assertEquals(QueueState.DRAINING, cs.getQueue(Q2).getState());
|
Assert.assertEquals(QueueState.DRAINING, cs.getQueue(Q2).getState());
|
||||||
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q3).getState());
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q3).getState());
|
||||||
|
|
||||||
|
// set Q2 state to RUNNING and do reinitialize.
|
||||||
|
// Q2 should transit from DRAINING to RUNNING
|
||||||
|
csConf.setState(Q2_PATH, QueueState.RUNNING);
|
||||||
|
conf = new YarnConfiguration(csConf);
|
||||||
|
cs.reinitialize(conf, rmContext);
|
||||||
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q1).getState());
|
||||||
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q2).getState());
|
||||||
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q3).getState());
|
||||||
|
|
||||||
|
// set Q2 state to stop and do reinitialize.
|
||||||
|
csConf.setState(Q2_PATH, QueueState.STOPPED);
|
||||||
|
conf = new YarnConfiguration(csConf);
|
||||||
|
cs.reinitialize(conf, rmContext);
|
||||||
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q1).getState());
|
||||||
|
Assert.assertEquals(QueueState.DRAINING, cs.getQueue(Q2).getState());
|
||||||
|
Assert.assertEquals(QueueState.RUNNING, cs.getQueue(Q3).getState());
|
||||||
|
|
||||||
// set Q1 state to stop and do reinitialize.
|
// set Q1 state to stop and do reinitialize.
|
||||||
csConf.setState(Q1_PATH, QueueState.STOPPED);
|
csConf.setState(Q1_PATH, QueueState.STOPPED);
|
||||||
conf = new YarnConfiguration(csConf);
|
conf = new YarnConfiguration(csConf);
|
||||||
|
Loading…
Reference in New Issue
Block a user