use of org.apache.kafka.common.message.DescribeProducersResponseData.PartitionResponse in project kafka by apache.
the class DescribeProducersRequest method getErrorResponse.
@Override
public DescribeProducersResponse getErrorResponse(int throttleTimeMs, Throwable e) {
Errors error = Errors.forException(e);
DescribeProducersResponseData response = new DescribeProducersResponseData();
for (TopicRequest topicRequest : data.topics()) {
TopicResponse topicResponse = new TopicResponse().setName(topicRequest.name());
for (int partitionId : topicRequest.partitionIndexes()) {
topicResponse.partitions().add(new PartitionResponse().setPartitionIndex(partitionId).setErrorCode(error.code()));
}
response.topics().add(topicResponse);
}
return new DescribeProducersResponse(response);
}
use of org.apache.kafka.common.message.DescribeProducersResponseData.PartitionResponse in project kafka by apache.
the class DescribeProducersHandlerTest method testCompletedResult.
@Test
public void testCompletedResult() {
TopicPartition topicPartition = new TopicPartition("foo", 5);
DescribeProducersOptions options = new DescribeProducersOptions().brokerId(1);
DescribeProducersHandler handler = newHandler(options);
PartitionResponse partitionResponse = sampleProducerState(topicPartition);
DescribeProducersResponse response = describeProducersResponse(singletonMap(topicPartition, partitionResponse));
Node node = new Node(3, "host", 1);
ApiResult<TopicPartition, PartitionProducerState> result = handler.handleResponse(node, mkSet(topicPartition), response);
assertEquals(mkSet(topicPartition), result.completedKeys.keySet());
assertEquals(emptyMap(), result.failedKeys);
assertEquals(emptyList(), result.unmappedKeys);
PartitionProducerState producerState = result.completedKeys.get(topicPartition);
assertMatchingProducers(partitionResponse, producerState);
}
use of org.apache.kafka.common.message.DescribeProducersResponseData.PartitionResponse in project kafka by apache.
the class DescribeProducersHandlerTest method describeProducersResponse.
private DescribeProducersResponse describeProducersResponse(Map<TopicPartition, PartitionResponse> partitionResponses) {
DescribeProducersResponseData response = new DescribeProducersResponseData();
Map<String, Map<Integer, PartitionResponse>> partitionResponsesByTopic = CollectionUtils.groupPartitionDataByTopic(partitionResponses);
for (Map.Entry<String, Map<Integer, PartitionResponse>> topicEntry : partitionResponsesByTopic.entrySet()) {
String topic = topicEntry.getKey();
Map<Integer, PartitionResponse> topicPartitionResponses = topicEntry.getValue();
TopicResponse topicResponse = new TopicResponse().setName(topic);
response.topics().add(topicResponse);
for (Map.Entry<Integer, PartitionResponse> partitionEntry : topicPartitionResponses.entrySet()) {
Integer partitionId = partitionEntry.getKey();
PartitionResponse partitionResponse = partitionEntry.getValue();
topicResponse.partitions().add(partitionResponse.setPartitionIndex(partitionId));
}
}
return new DescribeProducersResponse(response);
}
use of org.apache.kafka.common.message.DescribeProducersResponseData.PartitionResponse in project kafka by apache.
the class DescribeProducersHandlerTest method sampleProducerState.
private PartitionResponse sampleProducerState(TopicPartition topicPartition) {
PartitionResponse partitionResponse = new PartitionResponse().setPartitionIndex(topicPartition.partition()).setErrorCode(Errors.NONE.code());
partitionResponse.setActiveProducers(asList(new ProducerState().setProducerId(12345L).setProducerEpoch(15).setLastSequence(75).setLastTimestamp(System.currentTimeMillis()).setCurrentTxnStartOffset(-1L), new ProducerState().setProducerId(98765L).setProducerEpoch(30).setLastSequence(150).setLastTimestamp(System.currentTimeMillis() - 5000).setCurrentTxnStartOffset(5000)));
return partitionResponse;
}
Aggregations