private void populateRequestEmailProperties(Map<String, Object> templateProperties, SingularityRequest request, SingularityEmailType emailType) { templateProperties.put("requestId", request.getId()); templateProperties.put("singularityRequestLink", mailTemplateHelpers.getSingularityRequestLink(request.getId())); templateProperties.put("requestAlwaysRunning", request.isAlwaysRunning()); templateProperties.put("requestRunOnce", request.getRequestType() == RequestType.RUN_ONCE); templateProperties.put("requestScheduled", request.isScheduled()); templateProperties.put("requestOneOff", request.isOneOff()); templateProperties.put("taskWillRetry", request.getNumRetriesOnFailure().or(0) > 0); templateProperties.put("numRetries", request.getNumRetriesOnFailure().or(0)); templateProperties.put("color", emailType.getColor()); }
private int getNumMissingInstances(List<SingularityTaskId> matchingTaskIds, SingularityRequest request, SingularityPendingRequest pendingRequest, Optional<SingularityPendingDeploy> maybePendingDeploy) { PendingType pendingType = pendingRequest.getPendingType(); if (request.isOneOff()) { if (pendingType == PendingType.ONEOFF || pendingType == PendingType.RETRY) { return 1; } else { return 0; } } else if (request.getRequestType() == RequestType.RUN_ONCE && pendingType == PendingType.NEW_DEPLOY) { return 1; } return numInstancesExpected(request, pendingRequest, maybePendingDeploy) - matchingTaskIds.size(); }
public long unpause(SingularityRequest request, Optional<String> user, Optional<String> message, Optional<Boolean> skipHealthchecks) { mailer.sendRequestUnpausedMail(request, user, message); Optional<String> maybeDeployId = deployManager.getInUseDeployId(request.getId()); final long now = System.currentTimeMillis(); requestManager.unpause(request, now, user, message); if (maybeDeployId.isPresent() && !request.isOneOff()) { requestManager.addToPendingQueue(new SingularityPendingRequest(request.getId(), maybeDeployId.get(), now, user, PendingType.UNPAUSED, skipHealthchecks, message)); } return now; }
private SingularityDeploy checkImmediateRunDeploy(SingularityRequest request, SingularityDeploy deploy, SingularityRunNowRequest runNowRequest, List<SingularityTaskId> activeTasks, List<SingularityPendingTaskId> pendingTasks) { if (!request.isScheduled() && !request.isOneOff()) { throw badRequest("Can not request an immediate run of a non-scheduled / always running request (%s)", request); } return deploy.toBuilder() .setRunImmediately(Optional.of(fillRunNowRequest(Optional.of(runNowRequest)))) .build(); }
public SingularityRequestParent exitCooldown(String requestId, Optional<SingularityExitCooldownRequest> exitCooldownRequest, SingularityUser user) { final SingularityRequestWithState requestWithState = fetchRequestWithState(requestId, user); authorizationHelper.checkForAuthorization(requestWithState.getRequest(), user, SingularityAuthorizationScope.WRITE); checkConflict(requestWithState.getState() == RequestState.SYSTEM_COOLDOWN, "Request %s is not in SYSTEM_COOLDOWN state, it is in %s", requestId, requestWithState.getState()); final Optional<String> maybeDeployId = deployManager.getInUseDeployId(requestId); final long now = System.currentTimeMillis(); Optional<String> message = Optional.absent(); Optional<Boolean> skipHealthchecks = Optional.absent(); if (exitCooldownRequest.isPresent()) { message = exitCooldownRequest.get().getMessage(); skipHealthchecks = exitCooldownRequest.get().getSkipHealthchecks(); } requestManager.exitCooldown(requestWithState.getRequest(), now, Optional.of(user.getId()), message); if (maybeDeployId.isPresent() && !requestWithState.getRequest().isOneOff()) { requestManager.addToPendingQueue(new SingularityPendingRequest(requestId, maybeDeployId.get(), now, Optional.of(user.getId()), PendingType.IMMEDIATE, skipHealthchecks, message)); } return fillEntireRequest(requestWithState); }
pendingType = PendingType.IMMEDIATE; checkConflict(activeTasks.isEmpty(), "Cannot request immediate run of a scheduled job which is currently running (%s)", activeTasks); } else if (request.isOneOff()) { pendingType = PendingType.ONEOFF; if (request.getInstances().isPresent()) {
SingularityRequest request = requestWithState.getRequest(); if (!request.isOneOff() && !(request.getRequestType() == RequestType.RUN_ONCE)) { cleanupTasks(pendingDeploy, request, deployResult, tasksToKill); } else if (!request.isDeployable() && !request.isOneOff()) { PendingType pendingType = canceledOr(deployResult.getDeployState(), PendingType.NEW_DEPLOY); requestManager.addToPendingQueue(new SingularityPendingRequest(request.getId(), pendingDeploy.getDeployMarker().getDeployId(), if (request.isDeployable() && !request.isOneOff()) {
private void populateRequestEmailProperties(Map<String, Object> templateProperties, SingularityRequest request, SingularityEmailType emailType) { templateProperties.put("requestId", request.getId()); templateProperties.put("singularityRequestLink", mailTemplateHelpers.getSingularityRequestLink(request.getId())); templateProperties.put("requestAlwaysRunning", request.isAlwaysRunning()); templateProperties.put("requestRunOnce", request.getRequestType() == RequestType.RUN_ONCE); templateProperties.put("requestScheduled", request.isScheduled()); templateProperties.put("requestOneOff", request.isOneOff()); templateProperties.put("taskWillRetry", request.getNumRetriesOnFailure().or(0) > 0); templateProperties.put("numRetries", request.getNumRetriesOnFailure().or(0)); templateProperties.put("color", emailType.getColor()); }
private int getNumMissingInstances(List<SingularityTaskId> matchingTaskIds, SingularityRequest request, SingularityPendingRequest pendingRequest, Optional<SingularityPendingDeploy> maybePendingDeploy) { PendingType pendingType = pendingRequest.getPendingType(); if (request.isOneOff()) { if (pendingType == PendingType.ONEOFF || pendingType == PendingType.RETRY) { return 1; } else { return 0; } } else if (request.getRequestType() == RequestType.RUN_ONCE && pendingType == PendingType.NEW_DEPLOY) { return 1; } return numInstancesExpected(request, pendingRequest, maybePendingDeploy) - matchingTaskIds.size(); }
public long unpause(SingularityRequest request, Optional<String> user, Optional<String> message, Optional<Boolean> skipHealthchecks) { mailer.sendRequestUnpausedMail(request, user, message); Optional<String> maybeDeployId = deployManager.getInUseDeployId(request.getId()); final long now = System.currentTimeMillis(); requestManager.unpause(request, now, user, message); if (maybeDeployId.isPresent() && !request.isOneOff()) { requestManager.addToPendingQueue(new SingularityPendingRequest(request.getId(), maybeDeployId.get(), now, user, PendingType.UNPAUSED, skipHealthchecks, message)); } return now; }
private SingularityDeploy checkImmediateRunDeploy(SingularityRequest request, SingularityDeploy deploy, SingularityRunNowRequest runNowRequest, List<SingularityTaskId> activeTasks, List<SingularityPendingTaskId> pendingTasks) { if (!request.isScheduled() && !request.isOneOff()) { throw badRequest("Can not request an immediate run of a non-scheduled / always running request (%s)", request); } return deploy.toBuilder() .setRunImmediately(Optional.of(fillRunNowRequest(Optional.of(runNowRequest)))) .build(); }
public SingularityRequestParent exitCooldown(String requestId, Optional<SingularityExitCooldownRequest> exitCooldownRequest, SingularityUser user) { final SingularityRequestWithState requestWithState = fetchRequestWithState(requestId, user); authorizationHelper.checkForAuthorization(requestWithState.getRequest(), user, SingularityAuthorizationScope.WRITE); checkConflict(requestWithState.getState() == RequestState.SYSTEM_COOLDOWN, "Request %s is not in SYSTEM_COOLDOWN state, it is in %s", requestId, requestWithState.getState()); final Optional<String> maybeDeployId = deployManager.getInUseDeployId(requestId); final long now = System.currentTimeMillis(); Optional<String> message = Optional.absent(); Optional<Boolean> skipHealthchecks = Optional.absent(); if (exitCooldownRequest.isPresent()) { message = exitCooldownRequest.get().getMessage(); skipHealthchecks = exitCooldownRequest.get().getSkipHealthchecks(); } requestManager.exitCooldown(requestWithState.getRequest(), now, Optional.of(user.getId()), message); if (maybeDeployId.isPresent() && !requestWithState.getRequest().isOneOff()) { requestManager.addToPendingQueue(new SingularityPendingRequest(requestId, maybeDeployId.get(), now, Optional.of(user.getId()), PendingType.IMMEDIATE, skipHealthchecks, message)); } return fillEntireRequest(requestWithState); }
pendingType = PendingType.IMMEDIATE; checkConflict(activeTasks.isEmpty(), "Cannot request immediate run of a scheduled job which is currently running (%s)", activeTasks); } else if (request.isOneOff()) { pendingType = PendingType.ONEOFF; if (request.getInstances().isPresent()) {
SingularityRequest request = requestWithState.getRequest(); if (!request.isOneOff() && !(request.getRequestType() == RequestType.RUN_ONCE)) { cleanupTasks(pendingDeploy, request, deployResult, tasksToKill); } else if (!request.isDeployable() && !request.isOneOff()) { PendingType pendingType = canceledOr(deployResult.getDeployState(), PendingType.NEW_DEPLOY); requestManager.addToPendingQueue(new SingularityPendingRequest(request.getId(), pendingDeploy.getDeployMarker().getDeployId(), if (request.isDeployable() && !request.isOneOff()) {