private TestSavepointDisposalTriggerHandler() { super(SavepointDisposalTriggerHeaders.getInstance()); }
private CompletableFuture<String> triggerSavepoint( final JobID jobId, final @Nullable String savepointDirectory, final boolean cancelJob) { final SavepointTriggerHeaders savepointTriggerHeaders = SavepointTriggerHeaders.getInstance(); final SavepointTriggerMessageParameters savepointTriggerMessageParameters = savepointTriggerHeaders.getUnresolvedMessageParameters(); savepointTriggerMessageParameters.jobID.resolve(jobId); final CompletableFuture<TriggerResponse> responseFuture = sendRequest( savepointTriggerHeaders, savepointTriggerMessageParameters, new SavepointTriggerRequestBody(savepointDirectory, cancelJob)); return responseFuture.thenCompose(savepointTriggerResponseBody -> { final TriggerId savepointTriggerId = savepointTriggerResponseBody.getTriggerId(); return pollSavepointAsync(jobId, savepointTriggerId); }).thenApply(savepointInfo -> { if (savepointInfo.getFailureCause() != null) { throw new CompletionException(savepointInfo.getFailureCause()); } return savepointInfo.getLocation(); }); }
private TestSavepointDisposalStatusHandler(OptionalFailure<AsynchronousOperationInfo>... responses) { super(SavepointDisposalStatusHeaders.getInstance()); this.responses = new ArrayDeque<>(Arrays.asList(responses)); }
@Override public CompletableFuture<Acknowledge> disposeSavepoint(String savepointPath) { final SavepointDisposalRequest savepointDisposalRequest = new SavepointDisposalRequest(savepointPath); final CompletableFuture<TriggerResponse> savepointDisposalTriggerFuture = sendRequest( SavepointDisposalTriggerHeaders.getInstance(), savepointDisposalRequest); final CompletableFuture<AsynchronousOperationInfo> savepointDisposalFuture = savepointDisposalTriggerFuture.thenCompose( (TriggerResponse triggerResponse) -> { final TriggerId triggerId = triggerResponse.getTriggerId(); final SavepointDisposalStatusHeaders savepointDisposalStatusHeaders = SavepointDisposalStatusHeaders.getInstance(); final SavepointDisposalStatusMessageParameters savepointDisposalStatusMessageParameters = savepointDisposalStatusHeaders.getUnresolvedMessageParameters(); savepointDisposalStatusMessageParameters.triggerIdPathParameter.resolve(triggerId); return pollResourceAsync( () -> sendRequest( savepointDisposalStatusHeaders, savepointDisposalStatusMessageParameters)); }); return savepointDisposalFuture.thenApply( (AsynchronousOperationInfo asynchronousOperationInfo) -> { if (asynchronousOperationInfo.getFailureCause() == null) { return Acknowledge.get(); } else { throw new CompletionException(asynchronousOperationInfo.getFailureCause()); } }); }
TestSavepointTriggerHandler(final String... expectedTargetDirectories) { super(SavepointTriggerHeaders.getInstance()); this.expectedTargetDirectories = Arrays.asList(expectedTargetDirectories).iterator(); }
private CompletableFuture<SavepointInfo> pollSavepointAsync( final JobID jobId, final TriggerId triggerID) { return pollResourceAsync(() -> { final SavepointStatusHeaders savepointStatusHeaders = SavepointStatusHeaders.getInstance(); final SavepointStatusMessageParameters savepointStatusMessageParameters = savepointStatusHeaders.getUnresolvedMessageParameters(); savepointStatusMessageParameters.jobIdPathParameter.resolve(jobId); savepointStatusMessageParameters.triggerIdPathParameter.resolve(triggerID); return sendRequest( savepointStatusHeaders, savepointStatusMessageParameters); }); }
TestSavepointHandler(final Object... expectedSavepointResponseBodies) { super(SavepointStatusHeaders.getInstance()); checkArgument(Arrays.stream(expectedSavepointResponseBodies) .allMatch(response -> response instanceof SavepointInfo || response instanceof RestHandlerException)); this.expectedSavepointResponseBodies = Arrays.asList(expectedSavepointResponseBodies).iterator(); }
final TestSavepointHandlers.TestSavepointHandler savepointHandler = testSavepointHandlers.new TestSavepointHandler( new SavepointInfo( savepointLocationDefaultDir, null), new SavepointInfo( savepointLocationRequestedDir, null), new SavepointInfo( null, new SerializedThrowable(new RuntimeException("expected"))),
@Override protected CompletableFuture<TriggerResponse> handleRequest(@Nonnull HandlerRequest<SavepointDisposalRequest, EmptyMessageParameters> request, @Nonnull DispatcherGateway gateway) { assertThat(request.getRequestBody().getSavepointPath(), is(savepointPath)); return CompletableFuture.completedFuture(new TriggerResponse(triggerId)); } }
@Override protected CompletableFuture<TriggerResponse> handleRequest( @Nonnull HandlerRequest<SavepointTriggerRequestBody, SavepointTriggerMessageParameters> request, @Nonnull DispatcherGateway gateway) throws RestHandlerException { final String targetDirectory = request.getRequestBody().getTargetDirectory(); if (Objects.equals(expectedTargetDirectories.next(), targetDirectory)) { return CompletableFuture.completedFuture( new TriggerResponse(testTriggerId)); } else { // return new random savepoint trigger id so that test can fail return CompletableFuture.completedFuture( new TriggerResponse(new TriggerId())); } } }
@Override public SavepointDisposalStatusMessageParameters getUnresolvedMessageParameters() { return new SavepointDisposalStatusMessageParameters(); }
public SavepointDisposalTriggerHandler( CompletableFuture<String> localRestAddress, GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String, String> responseHeaders) { super( localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointDisposalTriggerHeaders.getInstance()); }
public SavepointDisposalStatusHandler( CompletableFuture<String> localRestAddress, GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String, String> responseHeaders) { super( localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointDisposalStatusHeaders.getInstance()); }
public SavepointTriggerHandler( final CompletableFuture<String> localRestAddress, final GatewayRetriever<? extends RestfulGateway> leaderRetriever, final Time timeout, final Map<String, String> responseHeaders) { super(localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointTriggerHeaders.getInstance()); }
public SavepointStatusHandler( final CompletableFuture<String> localRestAddress, final GatewayRetriever<? extends RestfulGateway> leaderRetriever, final Time timeout, final Map<String, String> responseHeaders) { super(localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointStatusHeaders.getInstance()); }
@Override protected SavepointInfo operationResultResponse(String operationResult) { return new SavepointInfo(operationResult, null); } }
public SavepointDisposalTriggerHandler( CompletableFuture<String> localRestAddress, GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String, String> responseHeaders) { super( localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointDisposalTriggerHeaders.getInstance()); }
public SavepointDisposalStatusHandler( CompletableFuture<String> localRestAddress, GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String, String> responseHeaders) { super( localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointDisposalStatusHeaders.getInstance()); }
public SavepointTriggerHandler( final CompletableFuture<String> localRestAddress, final GatewayRetriever<? extends RestfulGateway> leaderRetriever, final Time timeout, final Map<String, String> responseHeaders) { super(localRestAddress, leaderRetriever, timeout, responseHeaders, SavepointTriggerHeaders.getInstance()); }
@Override protected SavepointInfo operationResultResponse(String operationResult) { return new SavepointInfo(operationResult, null); } }