@Override public String apply(@Nonnull SingularityPendingDeploy input) { return input.getDeployMarker().getRequestId(); } };
private Optional<SingularityDeployMarker> findCancel(List<SingularityDeployMarker> cancelDeploys, SingularityDeployMarker activeDeploy) { for (SingularityDeployMarker cancelDeploy : cancelDeploys) { if (cancelDeploy.getRequestId().equals(activeDeploy.getRequestId()) && cancelDeploy.getDeployId().equals(activeDeploy.getDeployId())) { return Optional.of(cancelDeploy); } } return Optional.absent(); }
protected Optional<SingularityDeploy> fillDeploy(Optional<SingularityDeployMarker> deployMarker) { if (!deployMarker.isPresent()) { return Optional.absent(); } return deployManager.getDeploy(deployMarker.get().getRequestId(), deployMarker.get().getDeployId()); }
private String getCancelDeployPath(SingularityDeployMarker deployMarker) { return ZKPaths.makePath(CANCEL_ROOT, String.format("%s-%s", deployMarker.getRequestId(), deployMarker.getDeployId())); }
private String applyPlaceholders(String uri, SingularityDeployUpdate deployUpdate) { return uri .replaceAll("\\$REQUEST_ID", deployUpdate.getDeployMarker().getRequestId()) .replaceAll("\\$DEPLOY_ID", deployUpdate.getDeployMarker().getDeployId()); }
private boolean saveNewDeployState(SingularityDeployMarker pendingDeployMarker, Optional<SingularityDeployMarker> newActiveDeploy) { Optional<SingularityRequestDeployState> deployState = deployManager.getRequestDeployState(pendingDeployMarker.getRequestId()); if (!deployState.isPresent()) { LOG.error("Expected deploy state for deploy marker: {} but didn't find it", pendingDeployMarker); return false; } deployManager.saveNewRequestDeployState(new SingularityRequestDeployState(deployState.get().getRequestId(), newActiveDeploy.or(deployState.get().getActiveDeploy()), Optional.absent())); return true; }
public static SingularityDeployKey fromDeployMarker(SingularityDeployMarker deployMarker) { return new SingularityDeployKey(deployMarker.getRequestId(), deployMarker.getDeployId()); }
private void deleteObsoletePendingTasks(SingularityPendingDeploy pendingDeploy) { List<SingularityPendingTaskId> obsoletePendingTasks = taskManager.getPendingTaskIds() .stream() .filter(taskId -> taskId.getRequestId().equals(pendingDeploy.getDeployMarker().getRequestId())) .filter(taskId -> !taskId.getDeployId().equals(pendingDeploy.getDeployMarker().getDeployId())) .collect(Collectors.toList()); for (SingularityPendingTaskId pendingTaskId : obsoletePendingTasks) { LOG.debug("Deleting obsolete pending task {}", pendingTaskId.getId()); taskManager.deletePendingTask(pendingTaskId); } }
private void removePendingDeploy(SingularityPendingDeploy pendingDeploy) { deployManager.deletePendingDeploy(pendingDeploy.getDeployMarker().getRequestId()); }
private Optional<SingularityUpdatePendingDeployRequest> findUpdateRequest(List<SingularityUpdatePendingDeployRequest> updateRequests, SingularityPendingDeploy pendingDeploy) { for (SingularityUpdatePendingDeployRequest updateRequest : updateRequests) { if (updateRequest.getRequestId().equals(pendingDeploy.getDeployMarker().getRequestId()) && updateRequest.getDeployId().equals(pendingDeploy.getDeployMarker().getDeployId())) { return Optional.of(updateRequest); } } return Optional.absent(); }
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; }
public int checkDeploys() { final List<SingularityPendingDeploy> pendingDeploys = deployManager.getPendingDeploys(); final List<SingularityDeployMarker> cancelDeploys = deployManager.getCancelDeploys(); final List<SingularityUpdatePendingDeployRequest> updateRequests = deployManager.getPendingDeployUpdates(); if (pendingDeploys.isEmpty() && cancelDeploys.isEmpty()) { return 0; } final Map<SingularityPendingDeploy, SingularityDeployKey> pendingDeployToKey = SingularityDeployKey.fromPendingDeploys(pendingDeploys); final Map<SingularityDeployKey, SingularityDeploy> deployKeyToDeploy = deployManager.getDeploysForKeys(pendingDeployToKey.values()); pendingDeploys.parallelStream().forEach((pendingDeploy) -> { lock.runWithRequestLock(() -> { checkDeploy(pendingDeploy, cancelDeploys, pendingDeployToKey, deployKeyToDeploy, updateRequests); }, pendingDeploy.getDeployMarker().getRequestId(), getClass().getSimpleName()); }); cancelDeploys.forEach(deployManager::deleteCancelDeployRequest); updateRequests.forEach(deployManager::deleteUpdatePendingDeployRequest); return pendingDeploys.size(); }
private LoadBalancerRequestId getLoadBalancerRequestId(SingularityPendingDeploy pendingDeploy) { return new LoadBalancerRequestId( String.format("%s-%s-%s", pendingDeploy.getDeployMarker().getRequestId(), pendingDeploy.getDeployMarker().getDeployId(), pendingDeploy.getDeployProgress().get().getTargetActiveInstances()), LoadBalancerRequestType.DEPLOY, Optional.<Integer> absent()); }
public SingularityCreateResult savePendingDeploy(SingularityPendingDeploy pendingDeploy) { return save(getPendingDeployPath(pendingDeploy.getDeployMarker().getRequestId()), pendingDeploy, pendingDeployTranscoder); }
public SingularityCreateResult createPendingDeploy(SingularityPendingDeploy pendingDeploy) { return create(getPendingDeployPath(pendingDeploy.getDeployMarker().getRequestId()), pendingDeploy, pendingDeployTranscoder); }
public SingularityCreateResult saveDeployResult(SingularityDeployMarker deployMarker, Optional<SingularityDeploy> deploy, SingularityDeployResult result) { singularityEventListener.deployHistoryEvent(new SingularityDeployUpdate(deployMarker, deploy, DeployEventType.FINISHED, Optional.of(result))); return save(getDeployResultPath(deployMarker.getRequestId(), deployMarker.getDeployId()), result, deployStateTranscoder); }
protected void finishDeploy(SingularityDeployMarker marker, SingularityDeploy deploy) { deployManager.deletePendingDeploy(marker.getRequestId()); deployManager.saveDeployResult(marker, Optional.of(deploy), new SingularityDeployResult(DeployState.SUCCEEDED)); deployManager.saveNewRequestDeployState(new SingularityRequestDeployState(marker.getRequestId(), Optional.of(marker), Optional.<SingularityDeployMarker> absent())); }
@Override public void saveDeployHistory(SingularityDeployHistory deployHistory) { if (LOG.isTraceEnabled()) { LOG.trace("saveDeployHistory {}", deployHistory); } history.insertDeployHistory(deployHistory.getDeployMarker().getRequestId(), deployHistory.getDeployMarker().getDeployId(), new Date(deployHistory.getDeployMarker().getTimestamp()), getUserField(deployHistory.getDeployMarker().getUser()), getMessageField(deployHistory.getDeployMarker().getMessage()), deployHistory.getDeployResult().isPresent() ? new Date(deployHistory.getDeployResult().get().getTimestamp()) : new Date(deployHistory.getDeployMarker().getTimestamp()), deployHistory.getDeployResult().isPresent() ? deployHistory.getDeployResult().get().getDeployState().name() : DeployState.CANCELED.name(), deployHistoryTranscoder.toBytes(deployHistory)); }
final Optional<SingularityDeploy> deploy = Optional.fromNullable(deployKeyToDeploy.get(deployKey)); Optional<SingularityRequestWithState> maybeRequestWithState = requestManager.getRequest(pendingDeploy.getDeployMarker().getRequestId());
private Optional<SingularityDeployMarker> findCancel(List<SingularityDeployMarker> cancelDeploys, SingularityDeployMarker activeDeploy) { for (SingularityDeployMarker cancelDeploy : cancelDeploys) { if (cancelDeploy.getRequestId().equals(activeDeploy.getRequestId()) && cancelDeploy.getDeployId().equals(activeDeploy.getDeployId())) { return Optional.of(cancelDeploy); } } return Optional.absent(); }