@Override public void handle(Request wsRequest, Response wsResponse) { userSession.checkIsSystemAdministrator(); queue.cancelAll(); wsResponse.noContent(); } }
@Test public void resumeWorkers_resumes_paused_workers() { underTest.pauseWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.PAUSED); underTest.resumeWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); }
private CeTask submitReport(DbSession dbSession, InputStream reportInput, ComponentDto project, Map<String, String> characteristics) { CeTaskSubmit.Builder submit = queue.prepareSubmit(); // the report file must be saved before submitting the task dbClient.ceTaskInputDao().insert(dbSession, submit.getUuid(), reportInput); dbSession.commit(); submit.setType(CeTaskTypes.REPORT); submit.setComponent(CeTaskSubmit.Component.fromDto(project)); submit.setSubmitterUuid(userSession.getUuid()); submit.setCharacteristics(characteristics); return queue.submit(submit.build()); }
@Test public void resumeWorkers_does_nothing_if_not_paused() { assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); underTest.resumeWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); }
@Test public void pauseWorkers_marks_workers_as_paused_if_zero_tasks_in_progress() { submit(CeTaskTypes.REPORT, newComponent(randomAlphabetic(12))); // task is pending assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); underTest.pauseWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.PAUSED); }
private CeTask submit(String reportType, Component component) { return underTest.submit(createTaskSubmit(reportType, component, null)); }
@Test public void authenticate_with_passcode() { userSession.anonymous(); when(passcode.isValid(any())).thenReturn(true); when(ceQueue.getWorkersPauseStatus()).thenReturn(CeQueue.WorkersPauseStatus.RESUMED); Ce.InfoWsResponse response = ws.newRequest().executeProtobuf(Ce.InfoWsResponse.class); assertThat(response.getWorkersPauseStatus()).isEqualTo(Ce.WorkersPauseStatus.RESUMED); } }
@Override public void handle(Request request, Response response) throws Exception { if (!systemPasscode.isValid(request) && !userSession.isSystemAdministrator()) { throw AbstractUserSession.insufficientPrivilegesException(); } ceQueue.resumeWorkers(); } }
@Override public void handle(Request request, Response response) throws Exception { if (!systemPasscode.isValid(request) && !userSession.isSystemAdministrator()) { throw AbstractUserSession.insufficientPrivilegesException(); } ceQueue.pauseWorkers(); } }
private void mockSuccessfulPrepareSubmitCall() { when(queue.prepareSubmit()).thenReturn(new CeTaskSubmit.Builder(TASK_UUID)); }
@Override public void handle(Request wsRequest, Response wsResponse) { String taskId = wsRequest.mandatoryParam(PARAM_TASK_ID); try (DbSession dbSession = dbClient.openSession(false)) { Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskId); queueDto.ifPresent(dto -> { checkPermission(dbSession, dto); queue.cancel(dbSession, dto); }); } wsResponse.noContent(); }
@Test public void submit_a_report_on_new_project_with_scan_permission_on_organization() { userSession .addPermission(OrganizationPermission.SCAN, db.getDefaultOrganization().getUuid()) .addPermission(PROVISION_PROJECTS, db.getDefaultOrganization()); ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization(), PROJECT_UUID).setDbKey(PROJECT_KEY); mockSuccessfulPrepareSubmitCall(); when(componentUpdater.createWithoutCommit(any(), any(), any())).thenReturn(project); when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT))) .thenReturn(true); underTest.submit(defaultOrganizationKey, PROJECT_KEY, null, PROJECT_NAME, emptyMap(), IOUtils.toInputStream("{binary}")); verify(queue).submit(any(CeTaskSubmit.class)); verify(componentUpdater).commitAndIndex(any(DbSession.class), eq(project)); }
@Test public void pauseWorkers_marks_workers_as_pausing_if_some_tasks_in_progress() { submit(CeTaskTypes.REPORT, newComponent(randomAlphabetic(12))); db.getDbClient().ceQueueDao().peek(session, WORKER_UUID); // task is in-progress assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); underTest.pauseWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.PAUSING); }
@Test public void test_workers_in_paused_state() { userSession.logIn().setSystemAdministrator(); when(ceQueue.getWorkersPauseStatus()).thenReturn(CeQueue.WorkersPauseStatus.PAUSED); Ce.InfoWsResponse response = ws.newRequest().executeProtobuf(Ce.InfoWsResponse.class); assertThat(response.getWorkersPauseStatus()).isEqualTo(Ce.WorkersPauseStatus.PAUSED); }
@Test public void authenticate_with_passcode() { userSession.anonymous(); when(passcode.isValid(any())).thenReturn(true); ws.newRequest().execute(); verify(ceQueue).resumeWorkers(); } }
@Test public void authenticate_with_passcode() { userSession.anonymous(); when(passcode.isValid(any())).thenReturn(true); ws.newRequest().execute(); verify(ceQueue).pauseWorkers(); } }
private String mockSuccessfulPrepareSubmitCall() { String taskUuid = randomAlphabetic(12); when(queue.prepareSubmit()).thenReturn(new CeTaskSubmit.Builder(taskUuid)); return taskUuid; }
@Test public void cancel_pending() { CeTask task = submit(CeTaskTypes.REPORT, newComponent(randomAlphabetic(12))); CeQueueDto queueDto = db.getDbClient().ceQueueDao().selectByUuid(db.getSession(), task.getUuid()).get(); underTest.cancel(db.getSession(), queueDto); Optional<CeActivityDto> activity = db.getDbClient().ceActivityDao().selectByUuid(db.getSession(), task.getUuid()); assertThat(activity.isPresent()).isTrue(); assertThat(activity.get().getStatus()).isEqualTo(CeActivityDto.Status.CANCELED); }
@Test public void resumeWorkers_resumes_pausing_workers() { submit(CeTaskTypes.REPORT, newComponent(randomAlphabetic(12))); db.getDbClient().ceQueueDao().peek(session, WORKER_UUID); // task is in-progress underTest.pauseWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.PAUSING); underTest.resumeWorkers(); assertThat(underTest.getWorkersPauseStatus()).isEqualTo(CeQueue.WorkersPauseStatus.RESUMED); }
private void verifyQueueSubmit(ComponentDto project, ComponentDto branch, UserDto user, Map<String, String> characteristics, String taskUuid) { verify(queue).submit(argThat(submit -> submit.getType().equals(CeTaskTypes.REPORT) && submit.getComponent().filter(cpt -> cpt.getUuid().equals(branch.uuid()) && cpt.getMainComponentUuid().equals(project.uuid())).isPresent() && submit.getSubmitterUuid().equals(user.getUuid()) && submit.getCharacteristics().equals(characteristics) && submit.getUuid().equals(taskUuid))); }