use of org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo in project flink by apache.
the class SavepointHandlersTest method testSavepointCompletedWithException.
@Test
public void testSavepointCompletedWithException() throws Exception {
final OperationResult<String> failedResult = OperationResult.failure(new RuntimeException("expected"));
final AtomicReference<AsynchronousJobOperationKey> keyReference = new AtomicReference<>();
TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setTriggerSavepointFunction(setReferenceToOperationKey(keyReference)).setGetSavepointStatusFunction(getResultIfKeyMatches(failedResult, keyReference)).build();
final TriggerId triggerId = savepointTriggerHandler.handleRequest(triggerSavepointRequest(), testingRestfulGateway).get().getTriggerId();
final AsynchronousOperationResult<SavepointInfo> savepointResponseBody = savepointStatusHandler.handleRequest(savepointStatusRequest(triggerId), testingRestfulGateway).get();
assertThat(savepointResponseBody.queueStatus().getId(), equalTo(QueueStatus.Id.COMPLETED));
assertThat(savepointResponseBody.resource(), notNullValue());
assertThat(savepointResponseBody.resource().getFailureCause(), notNullValue());
final Throwable savepointError = savepointResponseBody.resource().getFailureCause().deserializeError(ClassLoader.getSystemClassLoader());
assertThat(savepointError.getMessage(), equalTo("expected"));
assertThat(savepointError, instanceOf(RuntimeException.class));
}
use of org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo in project flink by apache.
the class StopWithSavepointHandlersTest method testSavepointCompletedSuccessfully.
@Test
public void testSavepointCompletedSuccessfully() throws Exception {
final OperationResult<String> successfulResult = OperationResult.success(COMPLETED_SAVEPOINT_EXTERNAL_POINTER);
AtomicReference<AsynchronousJobOperationKey> keyReference = new AtomicReference<>();
final TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setStopWithSavepointFunction(setReferenceToOperationKey(keyReference)).setGetSavepointStatusFunction(getResultIfKeyMatches(successfulResult, keyReference)).build();
final TriggerId triggerId = savepointTriggerHandler.handleRequest(triggerSavepointRequest(), testingRestfulGateway).get().getTriggerId();
AsynchronousOperationResult<SavepointInfo> savepointResponseBody;
savepointResponseBody = savepointStatusHandler.handleRequest(savepointStatusRequest(triggerId), testingRestfulGateway).get();
assertThat(savepointResponseBody.queueStatus().getId(), equalTo(QueueStatus.Id.COMPLETED));
assertThat(savepointResponseBody.resource(), notNullValue());
assertThat(savepointResponseBody.resource().getLocation(), equalTo(COMPLETED_SAVEPOINT_EXTERNAL_POINTER));
}
use of org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo in project flink by apache.
the class RestClusterClientSavepointTriggerTest method testTriggerSavepointTargetDirectory.
@Test
public void testTriggerSavepointTargetDirectory() throws Exception {
final TriggerId triggerId = new TriggerId();
final String expectedSubmittedSavepointDir = "world";
final String expectedReturnedSavepointDir = "hello";
try (final RestServerEndpoint restServerEndpoint = createRestServerEndpoint(triggerRequestBody -> {
assertEquals(expectedSubmittedSavepointDir, triggerRequestBody.getTargetDirectory().get());
assertFalse(triggerRequestBody.isCancelJob());
return triggerId;
}, statusRequestTriggerId -> {
assertEquals(triggerId, statusRequestTriggerId);
return new SavepointInfo(expectedReturnedSavepointDir, null);
})) {
final RestClusterClient<?> restClusterClient = createRestClusterClient(restServerEndpoint.getServerAddress().getPort());
final String savepointPath = restClusterClient.triggerSavepoint(new JobID(), expectedSubmittedSavepointDir, SavepointFormatType.CANONICAL).get();
assertEquals(expectedReturnedSavepointDir, savepointPath);
}
}
use of org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo in project flink by apache.
the class RestClusterClientSavepointTriggerTest method testTriggerSavepointCancelJob.
@Test
public void testTriggerSavepointCancelJob() throws Exception {
final TriggerId triggerId = new TriggerId();
final String expectedSavepointDir = "hello";
try (final RestServerEndpoint restServerEndpoint = createRestServerEndpoint(request -> {
assertTrue(request.isCancelJob());
return triggerId;
}, trigger -> {
assertEquals(triggerId, trigger);
return new SavepointInfo(expectedSavepointDir, null);
})) {
final RestClusterClient<?> restClusterClient = createRestClusterClient(restServerEndpoint.getServerAddress().getPort());
final String savepointPath = restClusterClient.cancelWithSavepoint(new JobID(), null, SavepointFormatType.CANONICAL).get();
assertEquals(expectedSavepointDir, savepointPath);
}
}
use of org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo in project flink by apache.
the class StopWithSavepointHandlersTest method testSavepointCompletedWithException.
@Test
public void testSavepointCompletedWithException() throws Exception {
AtomicReference<AsynchronousJobOperationKey> keyReference = new AtomicReference<>();
final OperationResult<String> failedResult = OperationResult.failure(new RuntimeException("expected"));
TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setStopWithSavepointFunction(setReferenceToOperationKey(keyReference)).setGetSavepointStatusFunction(getResultIfKeyMatches(failedResult, keyReference)).build();
final TriggerId triggerId = savepointTriggerHandler.handleRequest(triggerSavepointRequest(), testingRestfulGateway).get().getTriggerId();
final AsynchronousOperationResult<SavepointInfo> savepointResponseBody = savepointStatusHandler.handleRequest(savepointStatusRequest(triggerId), testingRestfulGateway).get();
assertThat(savepointResponseBody.queueStatus().getId(), equalTo(QueueStatus.Id.COMPLETED));
assertThat(savepointResponseBody.resource(), notNullValue());
assertThat(savepointResponseBody.resource().getFailureCause(), notNullValue());
final Throwable savepointError = savepointResponseBody.resource().getFailureCause().deserializeError(ClassLoader.getSystemClassLoader());
assertThat(savepointError.getMessage(), equalTo("expected"));
assertThat(savepointError, instanceOf(RuntimeException.class));
}
Aggregations