Search in sources :

Example 11 with TestingRestfulGateway

use of org.apache.flink.runtime.webmonitor.TestingRestfulGateway 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));
}
Also used : TriggerId(org.apache.flink.runtime.rest.messages.TriggerId) AsynchronousJobOperationKey(org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey) AtomicReference(java.util.concurrent.atomic.AtomicReference) SavepointInfo(org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo) TestingRestfulGateway(org.apache.flink.runtime.webmonitor.TestingRestfulGateway) Test(org.junit.Test)

Example 12 with TestingRestfulGateway

use of org.apache.flink.runtime.webmonitor.TestingRestfulGateway in project flink by apache.

the class StopWithSavepointHandlersTest method testTriggerSavepointNoDirectory.

@Test
public void testTriggerSavepointNoDirectory() throws Exception {
    TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setStopWithSavepointFunction((AsynchronousJobOperationKey operationKey, String directory, SavepointFormatType formatType) -> CompletableFuture.completedFuture(Acknowledge.get())).build();
    try {
        savepointTriggerHandler.handleRequest(triggerSavepointRequestWithDefaultDirectory(), testingRestfulGateway).get();
        fail("Expected exception not thrown.");
    } catch (RestHandlerException rhe) {
        assertThat(rhe.getMessage(), equalTo("Config key [state.savepoints.dir] is not set. " + "Property [targetDirectory] must be provided."));
        assertThat(rhe.getHttpResponseStatus(), equalTo(HttpResponseStatus.BAD_REQUEST));
    }
}
Also used : AsynchronousJobOperationKey(org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey) SavepointFormatType(org.apache.flink.core.execution.SavepointFormatType) TestingRestfulGateway(org.apache.flink.runtime.webmonitor.TestingRestfulGateway) RestHandlerException(org.apache.flink.runtime.rest.handler.RestHandlerException) Test(org.junit.Test)

Example 13 with TestingRestfulGateway

use of org.apache.flink.runtime.webmonitor.TestingRestfulGateway in project flink by apache.

the class StopWithSavepointHandlersTest method testProvidedTriggerId.

@Test
public void testProvidedTriggerId() 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 providedTriggerId = new TriggerId();
    final TriggerId returnedTriggerId = savepointTriggerHandler.handleRequest(triggerSavepointRequest(DEFAULT_REQUESTED_SAVEPOINT_TARGET_DIRECTORY, SavepointFormatType.CANONICAL, providedTriggerId), testingRestfulGateway).get().getTriggerId();
    assertEquals(providedTriggerId, returnedTriggerId);
    AsynchronousOperationResult<SavepointInfo> savepointResponseBody;
    savepointResponseBody = savepointStatusHandler.handleRequest(savepointStatusRequest(providedTriggerId), testingRestfulGateway).get();
    assertThat(savepointResponseBody.queueStatus().getId(), equalTo(QueueStatus.Id.COMPLETED));
    assertThat(savepointResponseBody.resource(), notNullValue());
    assertThat(savepointResponseBody.resource().getLocation(), equalTo(COMPLETED_SAVEPOINT_EXTERNAL_POINTER));
}
Also used : TriggerId(org.apache.flink.runtime.rest.messages.TriggerId) AsynchronousJobOperationKey(org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey) AtomicReference(java.util.concurrent.atomic.AtomicReference) SavepointInfo(org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo) TestingRestfulGateway(org.apache.flink.runtime.webmonitor.TestingRestfulGateway) Test(org.junit.Test)

Example 14 with TestingRestfulGateway

use of org.apache.flink.runtime.webmonitor.TestingRestfulGateway in project flink by apache.

the class StopWithSavepointHandlersTest method testTriggerSavepointWithDefaultDirectory.

@Test
public void testTriggerSavepointWithDefaultDirectory() throws Exception {
    final CompletableFuture<String> targetDirectoryFuture = new CompletableFuture<>();
    final TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setStopWithSavepointFunction((AsynchronousJobOperationKey operationKey, String targetDirectory, SavepointFormatType formatType) -> {
        targetDirectoryFuture.complete(targetDirectory);
        return CompletableFuture.completedFuture(Acknowledge.get());
    }).build();
    final String defaultSavepointDir = "/other/dir";
    final SavepointHandlers savepointHandlers = new SavepointHandlers(defaultSavepointDir);
    final SavepointHandlers.StopWithSavepointHandler savepointTriggerHandler = savepointHandlers.new StopWithSavepointHandler(leaderRetriever, TIMEOUT, Collections.emptyMap());
    savepointTriggerHandler.handleRequest(triggerSavepointRequestWithDefaultDirectory(), testingRestfulGateway).get();
    assertThat(targetDirectoryFuture.get(), equalTo(defaultSavepointDir));
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) AsynchronousJobOperationKey(org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey) SavepointFormatType(org.apache.flink.core.execution.SavepointFormatType) TestingRestfulGateway(org.apache.flink.runtime.webmonitor.TestingRestfulGateway) Test(org.junit.Test)

Example 15 with TestingRestfulGateway

use of org.apache.flink.runtime.webmonitor.TestingRestfulGateway in project flink by apache.

the class SavepointHandlersTest method testTriggerSavepointNoDirectory.

@Test
public void testTriggerSavepointNoDirectory() throws Exception {
    TestingRestfulGateway testingRestfulGateway = new TestingRestfulGateway.Builder().setTriggerSavepointFunction((AsynchronousJobOperationKey operationKey, String directory, SavepointFormatType formatType) -> CompletableFuture.completedFuture(Acknowledge.get())).build();
    try {
        savepointTriggerHandler.handleRequest(triggerSavepointRequestWithDefaultDirectory(), testingRestfulGateway).get();
        fail("Expected exception not thrown.");
    } catch (RestHandlerException rhe) {
        assertThat(rhe.getMessage(), equalTo("Config key [state.savepoints.dir] is not set. " + "Property [target-directory] must be provided."));
        assertThat(rhe.getHttpResponseStatus(), equalTo(HttpResponseStatus.BAD_REQUEST));
    }
}
Also used : AsynchronousJobOperationKey(org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey) SavepointFormatType(org.apache.flink.core.execution.SavepointFormatType) TestingRestfulGateway(org.apache.flink.runtime.webmonitor.TestingRestfulGateway) RestHandlerException(org.apache.flink.runtime.rest.handler.RestHandlerException) Test(org.junit.Test)

Aggregations

TestingRestfulGateway (org.apache.flink.runtime.webmonitor.TestingRestfulGateway)17 Test (org.junit.Test)16 AsynchronousJobOperationKey (org.apache.flink.runtime.rest.handler.job.AsynchronousJobOperationKey)11 CompletableFuture (java.util.concurrent.CompletableFuture)7 AtomicReference (java.util.concurrent.atomic.AtomicReference)7 TriggerId (org.apache.flink.runtime.rest.messages.TriggerId)7 SavepointInfo (org.apache.flink.runtime.rest.messages.job.savepoints.SavepointInfo)7 JobID (org.apache.flink.api.common.JobID)6 Time (org.apache.flink.api.common.time.Time)6 RestHandlerException (org.apache.flink.runtime.rest.handler.RestHandlerException)6 SavepointFormatType (org.apache.flink.core.execution.SavepointFormatType)5 TestLogger (org.apache.flink.util.TestLogger)5 FutureUtils (org.apache.flink.util.concurrent.FutureUtils)5 Assert.assertThat (org.junit.Assert.assertThat)5 Assert.fail (org.junit.Assert.fail)5 Before (org.junit.Before)5 Collections (java.util.Collections)4 ExecutionException (java.util.concurrent.ExecutionException)4 FlinkJobNotFoundException (org.apache.flink.runtime.messages.FlinkJobNotFoundException)4 HandlerRequest (org.apache.flink.runtime.rest.handler.HandlerRequest)4