From be26f86d5094c1437ffd36bc68e13cdf07c70ce5 Mon Sep 17 00:00:00 2001 From: iliax Date: Tue, 14 Mar 2023 16:59:57 +0400 Subject: [PATCH] wip --- .../com/provectus/kafka/ui/service/FeatureService.java | 9 ++++++--- .../provectus/kafka/ui/service/ReactiveAdminClient.java | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/FeatureService.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/FeatureService.java index e6c2c2f06c..7749849ab1 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/FeatureService.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/FeatureService.java @@ -8,6 +8,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.Predicate; import javax.annotation.Nullable; import lombok.RequiredArgsConstructor; @@ -53,7 +54,7 @@ public class FeatureService { private Mono topicDeletionEnabled(KafkaCluster cluster, @Nullable Node controller) { if (controller == null) { - return Mono.empty(); + return Mono.just(ClusterFeature.TOPIC_DELETION); // assuming it is enabled by default } return adminClientService.get(cluster) .flatMap(ac -> ac.loadBrokersConfig(List.of(controller.id()))) @@ -64,11 +65,13 @@ public class FeatureService { .map(e -> Boolean.parseBoolean(e.value())) .findFirst() .orElse(true)) - .flatMap(enabled -> enabled ? Mono.just(ClusterFeature.TOPIC_DELETION) : Mono.empty()); + .flatMap(enabled -> enabled + ? Mono.just(ClusterFeature.TOPIC_DELETION) + : Mono.empty()); } private Mono aclEdit(ClusterDescription clusterDescription) { - var authorizedOps = clusterDescription.getAuthorizedOperations(); + var authorizedOps = Optional.ofNullable(clusterDescription.getAuthorizedOperations()).orElse(Set.of()); boolean canEdit = authorizedOps.contains(AclOperation.ALL) || authorizedOps.contains(AclOperation.ALTER); return canEdit ? Mono.just(ClusterFeature.KAFKA_ACL_EDIT) diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ReactiveAdminClient.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ReactiveAdminClient.java index ce08f9062e..599e19981b 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ReactiveAdminClient.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ReactiveAdminClient.java @@ -115,6 +115,7 @@ public class ReactiveAdminClient implements Closeable { Node controller; String clusterId; Collection nodes; + @Nullable // null, if ACL is disabled Set authorizedOperations; }