浏览代码

Fix consumers sorting (#2447)

* Fix consumers sorting

* Fix tests

* Review fix

* Review suggestions
Roman Zabaluev 2 年之前
父节点
当前提交
c8306f5970

+ 1 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ConsumerGroupService.java

@@ -161,7 +161,7 @@ public class ConsumerGroupService {
         };
         return Comparator.comparingInt(statesPriorities);
       case MEMBERS:
-        return Comparator.comparingInt(cg -> -cg.members().size());
+        return Comparator.comparingInt(cg -> cg.members().size());
       default:
         throw new IllegalStateException("Unsupported order by: " + orderBy);
     }

+ 17 - 1
kafka-ui-api/src/test/java/com/provectus/kafka/ui/KafkaConsumerGroupTests.java

@@ -14,6 +14,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import lombok.extern.slf4j.Slf4j;
 import lombok.val;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.kafka.clients.admin.NewTopic;
 import org.apache.kafka.clients.consumer.ConsumerConfig;
 import org.apache.kafka.clients.consumer.KafkaConsumer;
@@ -126,6 +127,21 @@ public class KafkaConsumerGroupTests extends AbstractIntegrationTest {
               assertThat(page.getConsumerGroups())
                   .isSortedAccordingTo(Comparator.comparing(ConsumerGroupDTO::getGroupId).reversed());
             });
+
+      webTestClient
+          .get()
+          .uri("/api/clusters/{clusterName}/consumer-groups/paged?perPage=10&&search"
+              + "=cgPageTest&orderBy=MEMBERS&sortOrder=DESC", LOCAL)
+          .exchange()
+          .expectStatus()
+          .isOk()
+          .expectBody(ConsumerGroupsPageResponseDTO.class)
+          .value(page -> {
+            assertThat(page.getPageCount()).isEqualTo(1);
+            assertThat(page.getConsumerGroups().size()).isEqualTo(5);
+            assertThat(page.getConsumerGroups())
+                .isSortedAccordingTo(Comparator.comparing(ConsumerGroupDTO::getMembers).reversed());
+          });
     }
   }
 
@@ -133,7 +149,7 @@ public class KafkaConsumerGroupTests extends AbstractIntegrationTest {
     String topicName = createTopicWithRandomName();
     var consumers =
         Stream.generate(() -> {
-          String groupId = consumerGroupPrefix + UUID.randomUUID();
+          String groupId = consumerGroupPrefix + RandomStringUtils.randomAlphabetic(5);
           val consumer = createTestConsumerWithGroupId(groupId);
           consumer.subscribe(List.of(topicName));
           consumer.poll(Duration.ofMillis(100));

+ 2 - 0
kafka-ui-api/src/test/java/com/provectus/kafka/ui/container/KafkaConnectContainer.java

@@ -12,6 +12,7 @@ public class KafkaConnectContainer extends GenericContainer<KafkaConnectContaine
   public KafkaConnectContainer(String version) {
     super("confluentinc/cp-kafka-connect:" + version);
     addExposedPort(CONNECT_PORT);
+
     waitStrategy = Wait.forHttp("/")
         .withStartupTimeout(Duration.ofMinutes(5));
   }
@@ -37,6 +38,7 @@ public class KafkaConnectContainer extends GenericContainer<KafkaConnectContaine
     withEnv("CONNECT_INTERNAL_KEY_CONVERTER", "org.apache.kafka.connect.json.JsonConverter");
     withEnv("CONNECT_INTERNAL_VALUE_CONVERTER", "org.apache.kafka.connect.json.JsonConverter");
     withEnv("CONNECT_REST_ADVERTISED_HOST_NAME", "kafka-connect");
+    withEnv("CONNECT_REST_PORT", String.valueOf(CONNECT_PORT));
     withEnv("CONNECT_PLUGIN_PATH", "/usr/share/java,/usr/share/confluent-hub-components");
     return self();
   }