@GET @PropertyFiltering @Path("/paused") @Operation(summary = "Retrieve the list of paused requests") public List<SingularityRequestParent> getPausedRequests( @Parameter(hidden = true) @Auth SingularityUser user, @Parameter(description = "Fetched a cached version of this data to limit expensive operations") @QueryParam("useWebCache") Boolean useWebCache, @Parameter(description = "Only include requests that the user has operated on or is in a group for") @QueryParam("filterRelevantForUser") Boolean filterRelevantForUser, @Parameter(description = "Return full data, including deploy data and active task ids") @QueryParam("includeFullRequestData") Boolean includeFullRequestData, @Parameter(description = "The maximum number of results to return") @QueryParam("limit") Integer limit, @Parameter(description = "Only return requests of these types") @QueryParam("requestType") List<RequestType> requestTypes) { return requestHelper.fillDataForRequestsAndFilter( filterAutorized(Lists.newArrayList(requestManager.getPausedRequests(useWebCache(useWebCache))), SingularityAuthorizationScope.READ, user), user, valueOrFalse(filterRelevantForUser), valueOrFalse(includeFullRequestData), Optional.fromNullable(limit), requestTypes); }
@Test public void testExpiringPause() { initRequest(); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy); requestResource.pause(requestId, Optional.of(new SingularityPauseRequest(Optional.absent(), Optional.of(1L), Optional.absent(), Optional.absent(), Optional.absent())), singularityUser); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); statusUpdate(taskOne, TaskState.TASK_KILLED); resourceOffers(); Assert.assertEquals(0, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.PAUSED, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getPausedRequests(false).iterator().next().getRequest().getId()); try { Thread.sleep(2); } catch (InterruptedException ie){ } expiringUserActionPoller.runActionOnPoll(); resourceOffers(); Assert.assertEquals(1, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getActiveRequests(false).iterator().next().getRequest().getId()); }
@Test public void testPause() { initRequest(); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy); requestResource.pause(requestId, Optional.absent(), singularityUser); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); statusUpdate(taskOne, TaskState.TASK_KILLED); resourceOffers(); Assert.assertEquals(0, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.PAUSED, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getPausedRequests(false).iterator().next().getRequest().getId()); requestResource.unpause(requestId, Optional.absent(), singularityUser); resourceOffers(); Assert.assertEquals(1, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getActiveRequests(false).iterator().next().getRequest().getId()); }
@GET @PropertyFiltering @Path("/paused") @Operation(summary = "Retrieve the list of paused requests") public List<SingularityRequestParent> getPausedRequests( @Parameter(hidden = true) @Auth SingularityUser user, @Parameter(description = "Fetched a cached version of this data to limit expensive operations") @QueryParam("useWebCache") Boolean useWebCache, @Parameter(description = "Only include requests that the user has operated on or is in a group for") @QueryParam("filterRelevantForUser") Boolean filterRelevantForUser, @Parameter(description = "Return full data, including deploy data and active task ids") @QueryParam("includeFullRequestData") Boolean includeFullRequestData, @Parameter(description = "The maximum number of results to return") @QueryParam("limit") Integer limit, @Parameter(description = "Only return requests of these types") @QueryParam("requestType") List<RequestType> requestTypes) { return requestHelper.fillDataForRequestsAndFilter( filterAutorized(Lists.newArrayList(requestManager.getPausedRequests(useWebCache(useWebCache))), SingularityAuthorizationScope.READ, user), user, valueOrFalse(filterRelevantForUser), valueOrFalse(includeFullRequestData), Optional.fromNullable(limit), requestTypes); }
@Test public void testExpiringPause() { initRequest(); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy); requestResource.pause(requestId, Optional.of(new SingularityPauseRequest(Optional.absent(), Optional.of(1L), Optional.absent(), Optional.absent(), Optional.absent())), singularityUser); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); statusUpdate(taskOne, TaskState.TASK_KILLED); resourceOffers(); Assert.assertEquals(0, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.PAUSED, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getPausedRequests(false).iterator().next().getRequest().getId()); try { Thread.sleep(2); } catch (InterruptedException ie){ } expiringUserActionPoller.runActionOnPoll(); resourceOffers(); Assert.assertEquals(1, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getActiveRequests(false).iterator().next().getRequest().getId()); }
@Test public void testPause() { initRequest(); initFirstDeploy(); SingularityTask taskOne = startTask(firstDeploy); requestResource.pause(requestId, Optional.absent(), singularityUser); cleaner.drainCleanupQueue(); Assert.assertEquals(1, taskManager.getKilledTaskIdRecords().size()); statusUpdate(taskOne, TaskState.TASK_KILLED); resourceOffers(); Assert.assertEquals(0, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.PAUSED, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getPausedRequests(false).iterator().next().getRequest().getId()); requestResource.unpause(requestId, Optional.absent(), singularityUser); resourceOffers(); Assert.assertEquals(1, taskManager.getActiveTaskIds().size()); Assert.assertEquals(0, taskManager.getPendingTasks().size()); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(requestId, requestManager.getActiveRequests(false).iterator().next().getRequest().getId()); }