scheduler.checkForDecomissions(); scheduler.drainPendingQueue();
@Test public void testValidTransitionToDecommissioned() { initRequest(); initFirstDeploy(); requestResource.postRequest(request.toBuilder().setInstances(Optional.of(2)).build(), singularityUser); scheduler.drainPendingQueue(); resourceOffers(1); SingularitySlave slave = slaveManager.getObjects().get(0); slaveResource.decommissionSlave(singularityUser, slave.getId(), new SingularityMachineChangeRequest(Optional.of(1L), Optional.absent(), Optional.absent(), Optional.of(MachineState.DECOMMISSIONED), Optional.of(true))); Assert.assertEquals(MachineState.STARTING_DECOMMISSION, slaveManager.getObjects().get(0).getCurrentState().getState()); scheduler.checkForDecomissions(); scheduler.drainPendingQueue(); Assert.assertEquals(TaskCleanupType.DECOMISSIONING, taskManager.getCleanupTasks().get(0).getCleanupType()); expiringUserActionPoller.runActionOnPoll(); Assert.assertEquals(MachineState.DECOMMISSIONED, slaveManager.getObjects().get(0).getCurrentState().getState()); Assert.assertEquals(TaskCleanupType.DECOMMISSION_TIMEOUT, taskManager.getCleanupTasks().get(0).getCleanupType()); }
@Test public void testDecommissionDoesntKillPendingDeploy() { initRequest(); deployResource.deploy(new SingularityDeployRequest(new SingularityDeployBuilder(requestId, "d1").setCommand(Optional.of("cmd")).build(), Optional.absent(), Optional.absent()), singularityUser); scheduler.drainPendingQueue(); deployChecker.checkDeploys(); resourceOffers(); Assert.assertEquals(1, taskManager.getNumActiveTasks()); slaveResource.decommissionSlave(singularityUser, taskManager.getActiveTasks().get(0).getAgentId().getValue(), null); scheduler.checkForDecomissions(); cleaner.drainCleanupQueue(); killKilledTasks(); Assert.assertEquals(1, taskManager.getNumActiveTasks()); Assert.assertEquals(1, taskManager.getNumCleanupTasks()); Assert.assertEquals(0, taskManager.getKilledTaskIdRecords().size()); configuration.setPendingDeployHoldTaskDuringDecommissionMillis(1); try { Thread.sleep(2); } catch (InterruptedException e) {} cleaner.drainCleanupQueue(); killKilledTasks(); Assert.assertEquals(0, taskManager.getNumActiveTasks()); Assert.assertEquals(0, taskManager.getNumCleanupTasks()); }
scheduler.checkForDecomissions(); scheduler.drainPendingQueue();
@Test public void testValidTransitionToDecommissioned() { initRequest(); initFirstDeploy(); requestResource.postRequest(request.toBuilder().setInstances(Optional.of(2)).build(), singularityUser); scheduler.drainPendingQueue(); resourceOffers(1); SingularitySlave slave = slaveManager.getObjects().get(0); slaveResource.decommissionSlave(singularityUser, slave.getId(), new SingularityMachineChangeRequest(Optional.of(1L), Optional.absent(), Optional.absent(), Optional.of(MachineState.DECOMMISSIONED), Optional.of(true))); Assert.assertEquals(MachineState.STARTING_DECOMMISSION, slaveManager.getObjects().get(0).getCurrentState().getState()); scheduler.checkForDecomissions(); scheduler.drainPendingQueue(); Assert.assertEquals(TaskCleanupType.DECOMISSIONING, taskManager.getCleanupTasks().get(0).getCleanupType()); expiringUserActionPoller.runActionOnPoll(); Assert.assertEquals(MachineState.DECOMMISSIONED, slaveManager.getObjects().get(0).getCurrentState().getState()); Assert.assertEquals(TaskCleanupType.DECOMMISSION_TIMEOUT, taskManager.getCleanupTasks().get(0).getCleanupType()); }
@Test public void testDecommissionDoesntKillPendingDeploy() { initRequest(); deployResource.deploy(new SingularityDeployRequest(new SingularityDeployBuilder(requestId, "d1").setCommand(Optional.of("cmd")).build(), Optional.absent(), Optional.absent()), singularityUser); scheduler.drainPendingQueue(); deployChecker.checkDeploys(); resourceOffers(); Assert.assertEquals(1, taskManager.getNumActiveTasks()); slaveResource.decommissionSlave(singularityUser, taskManager.getActiveTasks().get(0).getAgentId().getValue(), null); scheduler.checkForDecomissions(); cleaner.drainCleanupQueue(); killKilledTasks(); Assert.assertEquals(1, taskManager.getNumActiveTasks()); Assert.assertEquals(1, taskManager.getNumCleanupTasks()); Assert.assertEquals(0, taskManager.getKilledTaskIdRecords().size()); configuration.setPendingDeployHoldTaskDuringDecommissionMillis(1); try { Thread.sleep(2); } catch (InterruptedException e) {} cleaner.drainCleanupQueue(); killKilledTasks(); Assert.assertEquals(0, taskManager.getNumActiveTasks()); Assert.assertEquals(0, taskManager.getNumCleanupTasks()); }