99import com .google .common .collect .ImmutableTable ;
1010import com .google .common .collect .Iterables ;
1111import com .google .common .collect .Table ;
12+ import io .kafbat .ui .config .ClustersProperties ;
1213import io .kafbat .ui .exception .IllegalEntityStateException ;
1314import io .kafbat .ui .exception .NotFoundException ;
1415import io .kafbat .ui .exception .ValidationException ;
8889import org .apache .kafka .common .quota .ClientQuotaAlteration ;
8990import org .apache .kafka .common .quota .ClientQuotaEntity ;
9091import org .apache .kafka .common .quota .ClientQuotaFilter ;
91- import org .apache .kafka .common .requests .DescribeLogDirsResponse ;
9292import org .apache .kafka .common .resource .ResourcePatternFilter ;
9393import reactor .core .publisher .Flux ;
9494import reactor .core .publisher .Mono ;
@@ -190,9 +190,11 @@ private static Mono<ConfigRelatedInfo> extract(AdminClient ac) {
190190 }
191191 }
192192
193- public static Mono <ReactiveAdminClient > create (AdminClient adminClient ) {
193+ public static Mono <ReactiveAdminClient > create (AdminClient adminClient , ClustersProperties . AdminClient properties ) {
194194 Mono <ConfigRelatedInfo > configRelatedInfoMono = ConfigRelatedInfo .extract (adminClient );
195- return configRelatedInfoMono .map (info -> new ReactiveAdminClient (adminClient , configRelatedInfoMono , info ));
195+ return configRelatedInfoMono .map (info ->
196+ new ReactiveAdminClient (adminClient , configRelatedInfoMono , properties , info )
197+ );
196198 }
197199
198200
@@ -235,6 +237,7 @@ public static <T> Mono<T> toMono(KafkaFuture<T> future) {
235237 @ Getter (AccessLevel .PACKAGE ) // visible for testing
236238 private final AdminClient client ;
237239 private final Mono <ConfigRelatedInfo > configRelatedInfoMono ;
240+ private final ClustersProperties .AdminClient properties ;
238241
239242 private volatile ConfigRelatedInfo configRelatedInfo ;
240243
@@ -280,7 +283,7 @@ public Mono<Map<String, List<ConfigEntry>>> getTopicsConfig(Collection<String> t
280283 // we need to partition calls, because it can lead to AdminClient timeouts in case of large topics count
281284 return partitionCalls (
282285 topicNames ,
283- 200 ,
286+ properties . getGetTopicsConfigPartitionSize () ,
284287 part -> getTopicsConfigImpl (part , includeDocFixed ),
285288 mapMerger ()
286289 );
@@ -348,7 +351,7 @@ public Mono<Map<String, TopicDescription>> describeTopics(Collection<String> top
348351 // we need to partition calls, because it can lead to AdminClient timeouts in case of large topics count
349352 return partitionCalls (
350353 topics ,
351- 200 ,
354+ properties . getDescribeTopicsPartitionSize () ,
352355 this ::describeTopicsImpl ,
353356 mapMerger ()
354357 );
@@ -517,8 +520,8 @@ public Mono<Collection<ConsumerGroupListing>> listConsumerGroups() {
517520 public Mono <Map <String , ConsumerGroupDescription >> describeConsumerGroups (Collection <String > groupIds ) {
518521 return partitionCalls (
519522 groupIds ,
520- 25 ,
521- 4 ,
523+ properties . getDescribeConsumerGroupsPartitionSize () ,
524+ properties . getDescribeConsumerGroupsConcurrency () ,
522525 ids -> toMono (client .describeConsumerGroups (ids ).all ()),
523526 mapMerger ()
524527 );
@@ -541,8 +544,8 @@ public Mono<Table<String, TopicPartition, Long>> listConsumerGroupOffsets(List<S
541544
542545 Mono <Map <String , Map <TopicPartition , OffsetAndMetadata >>> merged = partitionCalls (
543546 consumerGroups ,
544- 25 ,
545- 4 ,
547+ properties . getListConsumerGroupOffsetsPartitionSize () ,
548+ properties . getListConsumerGroupOffsetsConcurrency () ,
546549 call ,
547550 mapMerger ()
548551 );
0 commit comments