private boolean hasTaskLeftOnRack(SingularityTaskId taskId, SingularityLeaderCache leaderCache) { for (SingularityTaskId activeTaskId : leaderCache.getActiveTaskIds()) { if (!activeTaskId.equals(taskId) && activeTaskId.getSanitizedRackId().equals(taskId.getSanitizedRackId())) { return true; } } return false; }
private boolean hasTaskLeftOnSlave(SingularityTaskId taskId, String slaveId, SingularityLeaderCache stateCache) { for (SingularityTaskId activeTaskId : stateCache.getActiveTaskIds()) { if (!activeTaskId.equals(taskId) && activeTaskId.getSanitizedHost().equals(taskId.getSanitizedHost())) { Optional<SingularityTask> maybeTask = taskManager.getTask(activeTaskId); if (maybeTask.isPresent() && slaveId.equals(maybeTask.get().getAgentId().getValue())) { return true; } } } return false; }
@Test public void testBounce() { initRequest(); requestResource.scale(requestId, new SingularityScaleRequest(Optional.of(3), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()), singularityUser); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy, 1); SingularityTask taskTwo = startTask(firstDeploy, 2); SingularityTask taskThree = startTask(firstDeploy, 3); requestResource.bounce(requestId, Optional.absent(), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); resourceOffers(); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 6); cleaner.drainCleanupQueue(); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); for (SingularityTask task : taskManager.getActiveTasks()) { if (!task.getTaskId().equals(taskOne.getTaskId()) && !task.getTaskId().equals(taskTwo.getTaskId()) && !task.getTaskId().equals(taskThree.getTaskId())) { statusUpdate(task, TaskState.TASK_RUNNING, Optional.of(1L)); } } cleaner.drainCleanupQueue(); Assert.assertTrue(taskManager.getCleanupTaskIds().isEmpty()); Assert.assertTrue(taskManager.getKilledTaskIdRecords().size() == 3); }
private boolean hasTaskLeftOnRack(SingularityTaskId taskId, SingularityLeaderCache leaderCache) { for (SingularityTaskId activeTaskId : leaderCache.getActiveTaskIds()) { if (!activeTaskId.equals(taskId) && activeTaskId.getSanitizedRackId().equals(taskId.getSanitizedRackId())) { return true; } } return false; }
private boolean hasTaskLeftOnSlave(SingularityTaskId taskId, String slaveId, SingularityLeaderCache stateCache) { for (SingularityTaskId activeTaskId : stateCache.getActiveTaskIds()) { if (!activeTaskId.equals(taskId) && activeTaskId.getSanitizedHost().equals(taskId.getSanitizedHost())) { Optional<SingularityTask> maybeTask = taskManager.getTask(activeTaskId); if (maybeTask.isPresent() && slaveId.equals(maybeTask.get().getAgentId().getValue())) { return true; } } } return false; }
@Test public void testBounce() { initRequest(); requestResource.scale(requestId, new SingularityScaleRequest(Optional.of(3), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()), singularityUser); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy, 1); SingularityTask taskTwo = startTask(firstDeploy, 2); SingularityTask taskThree = startTask(firstDeploy, 3); requestResource.bounce(requestId, Optional.absent(), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); resourceOffers(); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 6); cleaner.drainCleanupQueue(); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); for (SingularityTask task : taskManager.getActiveTasks()) { if (!task.getTaskId().equals(taskOne.getTaskId()) && !task.getTaskId().equals(taskTwo.getTaskId()) && !task.getTaskId().equals(taskThree.getTaskId())) { statusUpdate(task, TaskState.TASK_RUNNING, Optional.of(1L)); } } cleaner.drainCleanupQueue(); Assert.assertTrue(taskManager.getCleanupTaskIds().isEmpty()); Assert.assertTrue(taskManager.getKilledTaskIdRecords().size() == 3); }