@Override public String apply(@Nonnull SingularityTaskId input) { return input.getRequestId(); } };
public List<SingularityTaskId> getActiveTaskIdsForRequest(String requestId) { Set<SingularityTaskId> allActiveTaskIds; synchronized (activeTaskIds) { allActiveTaskIds = new HashSet<>(activeTaskIds); } return allActiveTaskIds.stream() .filter(t -> t.getRequestId().equals(requestId)) .collect(Collectors.toList()); }
@Override public String apply(@Nonnull SingularityKilledTaskIdRecord input) { return input.getTaskId().getRequestId(); } };
@Override public String apply(@Nonnull SingularityTaskCleanup input) { return input.getTaskId().getRequestId(); } };
private boolean isLongRunning(SingularityTaskId task) { Optional<SingularityRequestWithState> request = requestManager.getRequest(task.getRequestId()); if (request.isPresent()) { return request.get().getRequest().getRequestType().isLongRunning(); } LOG.warn("Couldn't find request id {} for task {}", task.getRequestId(), task.getId()); return false; }
private String fillInTaskIdValues(String string, SingularityOfferHolder offerHolder, SingularityTaskId taskId) { if (!Strings.isNullOrEmpty(string)) { string = string.replace("${TASK_REQUEST_ID}", taskId.getRequestId()) .replace("${TASK_DEPLOY_ID}", taskId.getDeployId()) .replace("${TASK_STARTED_AT}", Long.toString(taskId.getStartedAt())) .replace("${TASK_INSTANCE_NO}", Integer.toString(taskId.getInstanceNo())) .replace("${TASK_HOST}", offerHolder.getHostname()) .replace("${TASK_RACK_ID}", offerHolder.getRackId()) .replace("${TASK_ID}", taskId.getId()); } return string; }
public static SingularityDeployKey fromTaskId(SingularityTaskId taskId) { return new SingularityDeployKey(taskId.getRequestId(), taskId.getDeployId()); }
private void cleanupRequestIfNoRemainingTasks(SingularityTaskCleanup cleanupTask, List<String> taskIdsForDeletedRequest, boolean isRequestDeleting) { String requestId = cleanupTask.getTaskId().getRequestId(); taskIdsForDeletedRequest.remove(cleanupTask.getTaskId().getId()); if (taskIdsForDeletedRequest.isEmpty() && isRequestDeleting) { LOG.warn("All tasks for requestId {} are now killed, re-enqueueing request cleanup", requestId); requestManager.createCleanupRequest( new SingularityRequestCleanup( cleanupTask.getUser(), RequestCleanupType.DELETING, System.currentTimeMillis(), Optional.of(Boolean.TRUE), cleanupTask.getRemoveFromLoadBalancer(), requestId, Optional.absent(), Optional.absent(), cleanupTask.getMessage(), Optional.absent(), Optional.absent())); } }
private boolean isEligibleForShuffle(SingularityTaskId task) { Optional<SingularityTaskHistoryUpdate> taskRunning = taskManager.getTaskHistoryUpdate(task, ExtendedTaskState.TASK_RUNNING); return ( !configuration.getDoNotShuffleRequests().contains(task.getRequestId()) && isLongRunning(task) && ( configuration.getMinutesBeforeNewTaskEligibleForShuffle() == 0 // Shuffle delay is disabled entirely || (taskRunning.isPresent() && TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - taskRunning.get() .getTimestamp()) >= configuration.getMinutesBeforeNewTaskEligibleForShuffle()) ) ); }
public static String getS3KeyFormat(String s3KeyFormat, SingularityTaskId taskId, Optional<String> loggingTag, String group) { s3KeyFormat = getS3KeyFormat(s3KeyFormat, taskId.getRequestId(), taskId.getDeployId(), loggingTag, group); s3KeyFormat = s3KeyFormat.replace("%host", taskId.getSanitizedHost()); s3KeyFormat = s3KeyFormat.replace("%taskId", taskId.toString()); return s3KeyFormat; }
private String applyPlaceholders(String uri, SingularityTaskHistoryUpdate taskUpdate) { return uri .replaceAll("\\$REQUEST_ID", taskUpdate.getTaskId().getRequestId()) .replaceAll("\\$DEPLOY_ID", taskUpdate.getTaskId().getDeployId()) .replaceAll("\\$TASK_ID", taskUpdate.getTaskId().getId()); }
private SingularityTask checkActiveTask(String taskId, SingularityAuthorizationScope scope, SingularityUser user) { SingularityTaskId taskIdObj = getTaskIdFromStr(taskId); Optional<SingularityTask> task = taskManager.getTask(taskIdObj); checkNotFound(task.isPresent() && taskManager.isActiveTask(taskId), "No active task with id %s", taskId); if (task.isPresent()) { authorizationHelper.checkForAuthorizationByRequestId(task.get().getTaskId().getRequestId(), user, scope); } return task.get(); }
@Override public int compare(SingularityTaskIdHistory o1, SingularityTaskIdHistory o2) { ComparisonChain chain = ComparisonChain.start(); if (localOrderDirection == OrderDirection.ASC) { chain = chain.compare(o1.getTaskId().getStartedAt(), o2.getTaskId().getStartedAt()); } else { chain = chain.compare(o2.getTaskId().getStartedAt(), o1.getTaskId().getStartedAt()); } return chain.compare(o1.getTaskId().getRequestId(), o2.getTaskId().getRequestId()).result(); }
private void checkForRepeatedFailures(Optional<SingularityRequestWithState> requestWithState, SingularityTaskId taskId) { taskManager.markUnhealthyKill(taskId); if (requestWithState.isPresent() && taskManager.getNumUnhealthyKills(taskId.getRequestId()) > configuration.getCooldownAfterFailures()) { mailer.sendReplacementTasksFailingMail(requestWithState.get().getRequest()); } }
protected Optional<SingularityTaskHistory> getTaskHistory(SingularityTaskId taskId, SingularityUser user) { authorizationHelper.checkForAuthorizationByRequestId(taskId.getRequestId(), user, SingularityAuthorizationScope.READ); Optional<SingularityTaskHistory> history = taskManager.getTaskHistory(taskId); if (!history.isPresent()) { history = historyManager.getTaskHistory(taskId.getId()); } return history; }
private boolean isPartOfPendingDeploy(List<SingularityPendingDeploy> pendingDeploys, SingularityTaskId taskId) { for (SingularityPendingDeploy pendingDeploy : pendingDeploys) { if (pendingDeploy.getDeployMarker().getDeployId().equals(taskId.getDeployId()) && pendingDeploy.getDeployMarker().getRequestId().equals(taskId.getRequestId())) { return true; } } return false; }
private String getHistoryPath(SingularityTaskId taskId) { return ZKPaths.makePath(getRequestPath(taskId.getRequestId()), taskId.getId()); }
private String getUnhealthyKillPath(SingularityTaskId taskId) { return ZKPaths.makePath(getUnhealthyKillParentPath(taskId.getRequestId()), taskId.getId()); }
private Optional<String> getRequestGroupForTask(final SingularityTaskId taskId, SingularityUser user) { Optional<SingularityTaskHistory> maybeTaskHistory = getTaskHistory(taskId, user); if (maybeTaskHistory.isPresent()) { SingularityRequest request = maybeTaskHistory.get().getTask().getTaskRequest().getRequest(); authorizationHelper.checkForAuthorization(request, user, SingularityAuthorizationScope.READ); return request.getGroup(); } else { return getRequestGroup(taskId.getRequestId(), user); } }
private void assertEquals(SingularityTaskId one, SingularityTaskId two) { Assert.assertEquals(one, two); Assert.assertEquals(one.getDeployId(), two.getDeployId()); Assert.assertEquals(one.getRequestId(), two.getRequestId()); Assert.assertEquals(one.getSanitizedHost(), two.getSanitizedHost()); Assert.assertEquals(one.getSanitizedRackId(), two.getSanitizedRackId()); Assert.assertEquals(one.getStartedAt(), two.getStartedAt()); Assert.assertEquals(one.getInstanceNo(), two.getInstanceNo()); }