package com.hubspot.singularity.data.history; import java.util.Date; import java.util.List; import com.google.common.base.Optional; import com.hubspot.singularity.ExtendedTaskState; import com.hubspot.singularity.OrderDirection; import com.hubspot.singularity.SingularityDeployHistory; import com.hubspot.singularity.SingularityRequestHistory; import com.hubspot.singularity.SingularityTaskHistory; import com.hubspot.singularity.SingularityTaskIdHistory; import com.hubspot.singularity.data.history.SingularityMappers.SingularityRequestIdCount; public interface HistoryManager { void saveRequestHistoryUpdate(SingularityRequestHistory requestHistory); void saveTaskHistory(SingularityTaskHistory taskHistory); void saveDeployHistory(SingularityDeployHistory deployHistory); Optional<SingularityDeployHistory> getDeployHistory(String requestId, String deployId); List<SingularityDeployHistory> getDeployHistoryForRequest(String requestId, Integer limitStart, Integer limitCount); int getDeployHistoryForRequestCount(String requestId); List<SingularityTaskIdHistory> getTaskIdHistory(Optional<String> requestId, Optional<String> deployId, Optional<String> runId, Optional<String> host, Optional<ExtendedTaskState> lastTaskStatus, Optional<Long> startedBefore, Optional<Long> startedAfter, Optional<Long> updatedBefore, Optional<Long> updatedAfter, Optional<OrderDirection> orderDirection, Optional<Integer> limitStart, Integer limitCount); int getTaskIdHistoryCount(Optional<String> requestId, Optional<String> deployId, Optional<String> runId, Optional<String> host, Optional<ExtendedTaskState> lastTaskStatus, Optional<Long> startedBefore, Optional<Long> startedAfter, Optional<Long> updatedBefore, Optional<Long> updatedAfter); Optional<SingularityTaskHistory> getTaskHistory(String taskId); Optional<SingularityTaskHistory> getTaskHistoryByRunId(String requestId, String runId); List<SingularityRequestHistory> getRequestHistory(String requestId, Optional<OrderDirection> orderDirection, Integer limitStart, Integer limitCount); int getRequestHistoryCount(String requestId); List<String> getRequestHistoryLike(String requestIdLike, Integer limitStart, Integer limitCount); List<SingularityRequestIdCount> getRequestIdCounts(Date before); List<String> getRequestIdsInTaskHistory(); int getUnpurgedTaskHistoryCountByRequestBefore(String requestId, Date before); void purgeTaskHistory(String requestId, int count, Optional<Integer> limit, Optional<Date> purgeBefore, boolean deleteRowInsteadOfUpdate, Integer maxPurgeCount); }