use of org.apache.kafka.connect.runtime.RestartRequest in project kafka by apache.
the class ConnectorsResourceTest method testRestartConnectorAndTasksLeaderRedirect.
@Test
public void testRestartConnectorAndTasksLeaderRedirect() throws Throwable {
RestartRequest restartRequest = new RestartRequest(CONNECTOR_NAME, true, false);
final Capture<Callback<ConnectorStateInfo>> cb = Capture.newInstance();
herder.restartConnectorAndTasks(EasyMock.eq(restartRequest), EasyMock.capture(cb));
expectAndCallbackNotLeaderException(cb);
EasyMock.expect(RestClient.httpRequest(EasyMock.eq("http://leader:8083/connectors/" + CONNECTOR_NAME + "/restart?forward=true&includeTasks=" + restartRequest.includeTasks() + "&onlyFailed=" + restartRequest.onlyFailed()), EasyMock.eq("POST"), EasyMock.isNull(), EasyMock.isNull(), EasyMock.anyObject(), EasyMock.anyObject(WorkerConfig.class))).andReturn(new RestClient.HttpResponse<>(202, new HashMap<>(), null));
PowerMock.replayAll();
Response response = connectorsResource.restartConnector(CONNECTOR_NAME, NULL_HEADERS, restartRequest.includeTasks(), restartRequest.onlyFailed(), null);
assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatus());
PowerMock.verifyAll();
}
use of org.apache.kafka.connect.runtime.RestartRequest in project kafka by apache.
the class StandaloneHerderTest method testRestartConnectorAndTasksNoStatus.
@Test
public void testRestartConnectorAndTasksNoStatus() throws Exception {
RestartRequest restartRequest = new RestartRequest(CONNECTOR_NAME, false, true);
EasyMock.expect(herder.buildRestartPlan(restartRequest)).andReturn(Optional.empty()).anyTimes();
connector = PowerMock.createMock(BogusSinkConnector.class);
expectAdd(SourceSink.SINK);
Map<String, String> connectorConfig = connectorConfig(SourceSink.SINK);
Connector connectorMock = PowerMock.createMock(SinkConnector.class);
expectConfigValidation(connectorMock, true, connectorConfig);
PowerMock.replayAll();
herder.putConnectorConfig(CONNECTOR_NAME, connectorConfig, false, createCallback);
Herder.Created<ConnectorInfo> connectorInfo = createCallback.get(1000L, TimeUnit.SECONDS);
assertEquals(createdInfo(SourceSink.SINK), connectorInfo.result());
FutureCallback<ConnectorStateInfo> restartCallback = new FutureCallback<>();
herder.restartConnectorAndTasks(restartRequest, restartCallback);
ExecutionException ee = assertThrows(ExecutionException.class, () -> restartCallback.get(1000L, TimeUnit.MILLISECONDS));
assertTrue(ee.getCause() instanceof NotFoundException);
assertTrue(ee.getMessage().contains("Status for connector"));
PowerMock.verifyAll();
}
use of org.apache.kafka.connect.runtime.RestartRequest in project kafka by apache.
the class DistributedHerderTest method testDoRestartConnectorAndTasksEmptyPlan.
@Test
public void testDoRestartConnectorAndTasksEmptyPlan() {
RestartRequest restartRequest = new RestartRequest(CONN1, false, true);
EasyMock.expect(herder.buildRestartPlan(restartRequest)).andReturn(Optional.empty()).anyTimes();
PowerMock.replayAll();
herder.doRestartConnectorAndTasks(restartRequest);
PowerMock.verifyAll();
}
use of org.apache.kafka.connect.runtime.RestartRequest in project kafka by apache.
the class DistributedHerderTest method preserveHighestImpactRestartRequest.
@Test
public void preserveHighestImpactRestartRequest() {
member.wakeup();
PowerMock.expectLastCall().anyTimes();
PowerMock.replayAll();
final String connectorName = "foo";
RestartRequest restartRequest = new RestartRequest(connectorName, false, false);
configUpdateListener.onRestartRequest(restartRequest);
// will overwrite as this is higher impact
restartRequest = new RestartRequest(connectorName, false, true);
configUpdateListener.onRestartRequest(restartRequest);
assertEquals(1, herder.pendingRestartRequests.size());
assertFalse(herder.pendingRestartRequests.get(connectorName).onlyFailed());
assertTrue(herder.pendingRestartRequests.get(connectorName).includeTasks());
// will be ignored as the existing request has higher impact
restartRequest = new RestartRequest(connectorName, true, false);
configUpdateListener.onRestartRequest(restartRequest);
assertEquals(1, herder.pendingRestartRequests.size());
// compare against existing request
assertFalse(herder.pendingRestartRequests.get(connectorName).onlyFailed());
assertTrue(herder.pendingRestartRequests.get(connectorName).includeTasks());
}
use of org.apache.kafka.connect.runtime.RestartRequest in project kafka by apache.
the class DistributedHerderTest method processRestartRequestsFailureSuppression.
@Test
public void processRestartRequestsFailureSuppression() {
member.wakeup();
PowerMock.expectLastCall().anyTimes();
final String connectorName = "foo";
RestartRequest restartRequest = new RestartRequest(connectorName, false, false);
EasyMock.expect(herder.buildRestartPlan(restartRequest)).andThrow(new RuntimeException()).anyTimes();
PowerMock.replayAll();
configUpdateListener.onRestartRequest(restartRequest);
assertEquals(1, herder.pendingRestartRequests.size());
herder.processRestartRequests();
assertTrue(herder.pendingRestartRequests.isEmpty());
}
Aggregations