private void cancelImpl(DbSession dbSession, CeQueueDto q) { CeActivityDto activityDto = new CeActivityDto(q); activityDto.setStatus(CeActivityDto.Status.CANCELED); remove(dbSession, q, activityDto); }
@Override public void fail(DbSession dbSession, CeQueueDto task, @Nullable String errorType, @Nullable String errorMessage) { checkState(IN_PROGRESS.equals(task.getStatus()), "Task is not in-progress and can't be marked as failed [uuid=%s]", task.getUuid()); CeActivityDto activityDto = new CeActivityDto(task); activityDto.setStatus(CeActivityDto.Status.FAILED); activityDto.setErrorType(errorType); activityDto.setErrorMessage(errorMessage); updateExecutionFields(activityDto); remove(dbSession, task, activityDto); }
@Override public void cancelWornOuts() { try (DbSession dbSession = dbClient.openSession(false)) { List<CeQueueDto> wornOutTasks = dbClient.ceQueueDao().selectWornout(dbSession); wornOutTasks.forEach(queueDto -> { CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(CeActivityDto.Status.CANCELED); updateExecutionFields(activityDto); remove(dbSession, queueDto, activityDto); }); } }
@Override public void remove(CeTask task, CeActivityDto.Status status, @Nullable CeTaskResult taskResult, @Nullable Throwable error) { checkArgument(error == null || status == CeActivityDto.Status.FAILED, "Error can be provided only when status is FAILED"); long executionTimeInMs = 0L; try (DbSession dbSession = dbClient.openSession(false)) { CeQueueDto queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, task.getUuid()) .orElseThrow(() -> new IllegalStateException("Task does not exist anymore: " + task)); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); executionTimeInMs = updateExecutionFields(activityDto); updateTaskResult(activityDto, taskResult); updateError(activityDto, error); remove(dbSession, queueDto, activityDto); } finally { updateQueueStatus(status, executionTimeInMs); } }
private CeActivityDto createActivityDto(String uuid) { CeQueueDto queueDto = createQueueDto(uuid); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(CeActivityDto.Status.FAILED); activityDto.setExecutionTimeMs(500L); activityDto.setAnalysisUuid(uuid + "u1"); return activityDto; }
private void insertActivity(CeActivityDto.Status status, @Nullable ComponentDto dto) { CeQueueDto ceQueueDto = newCeQueueDto(Uuids.createFast()); ceQueueDto.setComponent(dto); dbClient.ceActivityDao().insert(dbSession, new CeActivityDto(ceQueueDto) .setStatus(status)); db.commit(); }
private CeActivityDto createAndPersistArchivedTask(@Nullable ComponentDto component) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setTaskType(CeTaskTypes.REPORT); queueDto.setUuid(SOME_TASK_UUID); if (component != null) { queueDto.setComponentUuid(component.uuid()); } CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(CeActivityDto.Status.FAILED); activityDto.setExecutionTimeMs(500L); activityDto.setAnalysisUuid(SOME_TASK_UUID + "_u1"); persist(activityDto); return activityDto; }
private void insertWithDates(String uuid, long submittedAt, long executedAt) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setUuid(uuid); queueDto.setTaskType("fake"); CeActivityDto dto = new CeActivityDto(queueDto); dto.setStatus(SUCCESS); dto.setSubmittedAt(submittedAt); dto.setExecutedAt(executedAt); underTest.insert(db.getSession(), dto); }
private CeActivityDto insertWithCreationDate(String uuid, long date) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setUuid(uuid); queueDto.setTaskType("fake"); CeActivityDto dto = new CeActivityDto(queueDto); dto.setStatus(SUCCESS); dto.setAnalysisUuid(uuid + "_AA"); system2.setNow(date); underTest.insert(db.getSession(), dto); return dto; }
private void insertActivityDto(String taskUuid, int createdAt, @Nullable Long executedAt, ComponentDto project) { dbClient.ceActivityDao().insert(dbTester.getSession(), new CeActivityDto(new CeQueueDto() .setUuid(taskUuid) .setTaskType(CeTaskTypes.REPORT) .setComponentUuid(project.uuid()) .setCreatedAt(createdAt)) .setExecutedAt(executedAt) .setStatus(CeActivityDto.Status.FAILED)); dbTester.getSession().commit(); }
private CeActivityDto insertActivity(String taskUuid, ComponentDto component, CeActivityDto.Status status, @Nullable SnapshotDto analysis) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setTaskType(CeTaskTypes.REPORT); queueDto.setComponent(component); queueDto.setUuid(taskUuid); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); activityDto.setExecutionTimeMs(500L); activityDto.setAnalysisUuid(analysis == null ? null : analysis.getUuid()); db.getDbClient().ceActivityDao().insert(db.getSession(), activityDto); db.getSession().commit(); return activityDto; }
private CeActivityDto insertActivity(String taskUuid, ComponentDto project, Status status, @Nullable SnapshotDto analysis) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setTaskType(CeTaskTypes.REPORT); queueDto.setComponent(project); queueDto.setUuid(taskUuid); queueDto.setCreatedAt(EXECUTED_AT); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); activityDto.setExecutionTimeMs(500L); activityDto.setExecutedAt(EXECUTED_AT); activityDto.setAnalysisUuid(analysis == null ? null : analysis.getUuid()); db.getDbClient().ceActivityDao().insert(db.getSession(), activityDto); db.commit(); return activityDto; }
private CeActivityDto insertActivity(String taskUuid, ComponentDto component, CeActivityDto.Status status, @Nullable SnapshotDto analysis) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setTaskType(CeTaskTypes.REPORT); queueDto.setComponent(component); queueDto.setUuid(taskUuid); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); activityDto.setExecutionTimeMs(500L); activityDto.setAnalysisUuid(analysis == null ? null : analysis.getUuid()); activityDto.setExecutedAt((long) counter++); db.getDbClient().ceActivityDao().insert(db.getSession(), activityDto); db.getSession().commit(); return activityDto; } }
private void insertWithDate(String uuid, LocalDateTime dateTime) { long date = dateTime.toInstant(UTC).toEpochMilli(); CeQueueDto queueDto = new CeQueueDto(); queueDto.setUuid(uuid); queueDto.setTaskType(CeTaskTypes.REPORT); CeActivityDto dto = new CeActivityDto(queueDto); dto.setStatus(CeActivityDto.Status.SUCCESS); when(system2.now()).thenReturn(date); CeTaskCharacteristicDto ceTaskCharacteristicDto = new CeTaskCharacteristicDto() .setUuid(UuidFactoryFast.getInstance().create()) .setValue(randomAlphanumeric(10)) .setKey(randomAlphanumeric(10)) .setTaskUuid(dto.getUuid()); dbTester.getDbClient().ceTaskInputDao().insert(dbTester.getSession(), dto.getUuid(), IOUtils.toInputStream(randomAlphanumeric(10), Charset.forName("UTF-8"))); dbTester.getDbClient().ceActivityDao().insert(dbTester.getSession(), dto); dbTester.getDbClient().ceTaskCharacteristicsDao().insert(dbTester.getSession(), Collections.singletonList(ceTaskCharacteristicDto)); dbTester.getSession().commit(); insertScannerContext(uuid, date); }
@Test public void json_example() { dbClient.ceQueueDao().insert(dbSession, newCeQueueDto("ce-queue-uuid-1").setStatus(CeQueueDto.Status.PENDING)); dbClient.ceQueueDao().insert(dbSession, newCeQueueDto("ce-queue-uuid-2").setStatus(CeQueueDto.Status.PENDING)); dbClient.ceQueueDao().insert(dbSession, newCeQueueDto("ce-queue-uuid-3").setStatus(CeQueueDto.Status.IN_PROGRESS)); for (int i = 0; i < 5; i++) { dbClient.ceActivityDao().insert(dbSession, new CeActivityDto(newCeQueueDto("ce-activity-uuid-" + i)) .setStatus(CeActivityDto.Status.FAILED)); } db.commit(); String result = ws.newRequest().execute().getInput(); assertJson(result).isSimilarTo(getClass().getResource("activity_status-example.json")); }
private CeActivityDto insertActivity(String projectUuid, SnapshotDto analysis, CeActivityDto.Status status) { CeQueueDto queueDto = new CeQueueDto(); queueDto.setTaskType(CeTaskTypes.REPORT); queueDto.setComponentUuid(projectUuid); queueDto.setUuid(randomAlphanumeric(40)); queueDto.setCreatedAt(nextLong()); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); activityDto.setExecutionTimeMs(nextLong()); activityDto.setExecutedAt(nextLong()); activityDto.setAnalysisUuid(analysis.getUuid()); db.getDbClient().ceActivityDao().insert(db.getSession(), activityDto); db.commit(); return activityDto; } }
private void cancelImpl(DbSession dbSession, CeQueueDto q) { CeActivityDto activityDto = new CeActivityDto(q); activityDto.setStatus(CeActivityDto.Status.CANCELED); remove(dbSession, q, activityDto); }
@Override public void remove(CeTask task, CeActivityDto.Status status, @Nullable CeTaskResult taskResult, @Nullable Throwable error) { checkArgument(error == null || status == CeActivityDto.Status.FAILED, "Error can be provided only when status is FAILED"); try (DbSession dbSession = dbClient.openSession(false)) { CeQueueDto queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, task.getUuid()) .orElseThrow(() -> new IllegalStateException("Task does not exist anymore: " + task)); CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(status); updateQueueStatus(status, activityDto); updateTaskResult(activityDto, taskResult); updateError(activityDto, error); remove(dbSession, queueDto, activityDto); } }
@Override public void cancelWornOuts() { try (DbSession dbSession = dbClient.openSession(false)) { List<CeQueueDto> wornOutTasks = dbClient.ceQueueDao().selectPendingByMinimumExecutionCount(dbSession, MAX_EXECUTION_COUNT); wornOutTasks.forEach(queueDto -> { CeActivityDto activityDto = new CeActivityDto(queueDto); activityDto.setStatus(CeActivityDto.Status.CANCELED); updateQueueStatus(CeActivityDto.Status.CANCELED, activityDto); remove(dbSession, queueDto, activityDto); }); } }