checkConflict(!requestManager.cleanupRequestExists(newRequest.getId(), RequestCleanupType.BOUNCE), "Request %s is already bouncing cannot bounce again", newRequest.getId());
private void submitRequest(SingularityRequest request, Optional<SingularityRequestWithState> oldRequestWithState, Optional<RequestHistoryType> historyType, Optional<Boolean> skipHealthchecks, Optional<String> message, Optional<SingularityBounceRequest> maybeBounceRequest, SingularityUser user) { checkNotNullBadRequest(request.getId(), "Request must have an id"); checkConflict(!requestManager.cleanupRequestExists(request.getId()), "Request %s is currently cleaning. Try again after a few moments", request.getId());
@Test public void testIncrementalBounceShutsDownOldTasksPerNewHealthyTask() { 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(); startTask(firstDeploy, 1); startTask(firstDeploy, 2); startTask(firstDeploy, 3); requestResource.bounce(requestId, Optional.of(new SingularityBounceRequest(Optional.of(true), Optional.absent(), Optional.of(1L), Optional.absent(), Optional.of("msg"), Optional.absent())), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertEquals(3, taskManager.getCleanupTaskIds().size()); SingularityTask newTask = launchTask(request, firstDeploy, 5, TaskState.TASK_STARTING); cleaner.drainCleanupQueue(); Assert.assertEquals(0, taskManager.getKilledTaskIdRecords().size()); Assert.assertEquals(4, taskManager.getActiveTaskIds().size()); statusUpdate(newTask, TaskState.TASK_RUNNING); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); Assert.assertEquals(4, taskManager.getActiveTaskIds().size()); }
Optional.of(new SingularityBounceRequest(Optional.of(true), Optional.absent(), Optional.of(1L), Optional.absent(), Optional.of("msg"), Optional.absent())), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); Assert.assertEquals("msg", requestManager.getCleanupRequests().get(0).getMessage().get()); Assert.assertTrue(requestManager.getCleanupRequests().get(0).getActionId().isPresent()); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); Assert.assertTrue(taskManager.getPendingTaskIds().isEmpty()); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 3); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTasks().isEmpty());
@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); }
Optional.<Boolean>absent(), Optional.absent(), requestId, Optional.of(firstDeployId), Optional.<Boolean> absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.<SingularityShellCommand>absent())); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertEquals(2, taskManager.getCleanupTaskIds().size());
checkConflict(!requestManager.cleanupRequestExists(newRequest.getId(), RequestCleanupType.BOUNCE), "Request %s is already bouncing cannot bounce again", newRequest.getId());
private void submitRequest(SingularityRequest request, Optional<SingularityRequestWithState> oldRequestWithState, Optional<RequestHistoryType> historyType, Optional<Boolean> skipHealthchecks, Optional<String> message, Optional<SingularityBounceRequest> maybeBounceRequest, SingularityUser user) { checkNotNullBadRequest(request.getId(), "Request must have an id"); checkConflict(!requestManager.cleanupRequestExists(request.getId()), "Request %s is currently cleaning. Try again after a few moments", request.getId());
@Test public void testIncrementalBounceShutsDownOldTasksPerNewHealthyTask() { 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(); startTask(firstDeploy, 1); startTask(firstDeploy, 2); startTask(firstDeploy, 3); requestResource.bounce(requestId, Optional.of(new SingularityBounceRequest(Optional.of(true), Optional.absent(), Optional.of(1L), Optional.absent(), Optional.of("msg"), Optional.absent())), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); cleaner.drainCleanupQueue(); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertEquals(3, taskManager.getCleanupTaskIds().size()); SingularityTask newTask = launchTask(request, firstDeploy, 5, TaskState.TASK_STARTING); cleaner.drainCleanupQueue(); Assert.assertEquals(0, taskManager.getKilledTaskIdRecords().size()); Assert.assertEquals(4, taskManager.getActiveTaskIds().size()); statusUpdate(newTask, TaskState.TASK_RUNNING); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); Assert.assertEquals(4, taskManager.getActiveTaskIds().size()); }
Optional.of(new SingularityBounceRequest(Optional.of(true), Optional.absent(), Optional.of(1L), Optional.absent(), Optional.of("msg"), Optional.absent())), singularityUser); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); Assert.assertEquals("msg", requestManager.getCleanupRequests().get(0).getMessage().get()); Assert.assertTrue(requestManager.getCleanupRequests().get(0).getActionId().isPresent()); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTaskIds().size() == 3); Assert.assertTrue(taskManager.getPendingTaskIds().isEmpty()); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 3); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(taskManager.getCleanupTasks().isEmpty());
@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); }
Optional.<Boolean>absent(), Optional.absent(), requestId, Optional.of(firstDeployId), Optional.<Boolean> absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.<SingularityShellCommand>absent())); Assert.assertTrue(requestManager.cleanupRequestExists(requestId)); Assert.assertTrue(!requestManager.cleanupRequestExists(requestId)); Assert.assertEquals(2, taskManager.getCleanupTaskIds().size());