use of org.apache.kafka.clients.admin.DescribeProducersOptions in project kafka by apache.
the class TransactionsCommandTest method expectDescribeProducers.
private void expectDescribeProducers(TopicPartition topicPartition, long producerId, short producerEpoch, long lastTimestamp, OptionalInt coordinatorEpoch, OptionalLong txnStartOffset) {
PartitionProducerState partitionProducerState = new PartitionProducerState(singletonList(new ProducerState(producerId, producerEpoch, 500, lastTimestamp, coordinatorEpoch, txnStartOffset)));
DescribeProducersResult result = Mockito.mock(DescribeProducersResult.class);
Mockito.when(result.all()).thenReturn(completedFuture(singletonMap(topicPartition, partitionProducerState)));
Mockito.when(admin.describeProducers(Collections.singletonList(topicPartition), new DescribeProducersOptions())).thenReturn(result);
}
use of org.apache.kafka.clients.admin.DescribeProducersOptions in project kafka by apache.
the class TransactionsCommandTest method testFindHangingLookupTopicPartitionsForBroker.
@Test
public void testFindHangingLookupTopicPartitionsForBroker() throws Exception {
int brokerId = 5;
String[] args = new String[] { "--bootstrap-server", "localhost:9092", "find-hanging", "--broker-id", String.valueOf(brokerId) };
String topic = "foo";
expectListTopics(singleton(topic));
Node node0 = new Node(0, "localhost", 9092);
Node node1 = new Node(1, "localhost", 9093);
Node node5 = new Node(5, "localhost", 9097);
TopicPartitionInfo partition0 = new TopicPartitionInfo(0, node0, Arrays.asList(node0, node1), Arrays.asList(node0, node1));
TopicPartitionInfo partition1 = new TopicPartitionInfo(1, node1, Arrays.asList(node1, node5), Arrays.asList(node1, node5));
TopicDescription description = new TopicDescription(topic, false, Arrays.asList(partition0, partition1));
expectDescribeTopics(singletonMap(topic, description));
DescribeProducersResult result = Mockito.mock(DescribeProducersResult.class);
Mockito.when(result.all()).thenReturn(completedFuture(emptyMap()));
Mockito.when(admin.describeProducers(Collections.singletonList(new TopicPartition(topic, 1)), new DescribeProducersOptions().brokerId(brokerId))).thenReturn(result);
execute(args);
assertNormalExit();
assertNoHangingTransactions();
}
use of org.apache.kafka.clients.admin.DescribeProducersOptions in project kafka by apache.
the class DescribeProducersHandlerTest method testUnmappedAfterNotLeaderError.
@Test
public void testUnmappedAfterNotLeaderError() {
TopicPartition topicPartition = new TopicPartition("foo", 5);
ApiResult<TopicPartition, PartitionProducerState> result = handleResponseWithError(new DescribeProducersOptions(), topicPartition, Errors.NOT_LEADER_OR_FOLLOWER);
assertEquals(emptyMap(), result.failedKeys);
assertEquals(emptyMap(), result.completedKeys);
assertEquals(singletonList(topicPartition), result.unmappedKeys);
}
use of org.apache.kafka.clients.admin.DescribeProducersOptions in project kafka by apache.
the class DescribeProducersHandlerTest method testBrokerIdSetInOptions.
@Test
public void testBrokerIdSetInOptions() {
int brokerId = 3;
Set<TopicPartition> topicPartitions = mkSet(new TopicPartition("foo", 5), new TopicPartition("bar", 3), new TopicPartition("foo", 4));
DescribeProducersHandler handler = newHandler(new DescribeProducersOptions().brokerId(brokerId));
topicPartitions.forEach(topicPartition -> {
ApiRequestScope scope = handler.lookupStrategy().lookupScope(topicPartition);
assertEquals(OptionalInt.of(brokerId), scope.destinationBrokerId(), "Unexpected brokerId for " + topicPartition);
});
}
use of org.apache.kafka.clients.admin.DescribeProducersOptions in project kafka by apache.
the class DescribeProducersHandlerTest method testBrokerIdNotSetInOptions.
@Test
public void testBrokerIdNotSetInOptions() {
Set<TopicPartition> topicPartitions = mkSet(new TopicPartition("foo", 5), new TopicPartition("bar", 3), new TopicPartition("foo", 4));
DescribeProducersHandler handler = newHandler(new DescribeProducersOptions());
topicPartitions.forEach(topicPartition -> {
ApiRequestScope scope = handler.lookupStrategy().lookupScope(topicPartition);
assertEquals(OptionalInt.empty(), scope.destinationBrokerId(), "Unexpected brokerId for " + topicPartition);
});
}
Aggregations