wip
This commit is contained in:
parent
2b2a12c336
commit
1336ec33cb
3 changed files with 13 additions and 14 deletions
|
@ -9,6 +9,7 @@ import com.provectus.kafka.ui.model.rbac.permission.ClientQuotaAction;
|
|||
import com.provectus.kafka.ui.service.quota.ClientQuotaRecord;
|
||||
import com.provectus.kafka.ui.service.quota.ClientQuotaService;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
@ -23,6 +24,11 @@ import reactor.core.publisher.Mono;
|
|||
@RequiredArgsConstructor
|
||||
public class ClientQuotasController extends AbstractController implements ClientQuotasApi {
|
||||
|
||||
private static final Comparator<ClientQuotaRecord> QUOTA_RECORDS_COMPARATOR =
|
||||
Comparator.nullsLast(Comparator.comparing(ClientQuotaRecord::user))
|
||||
.thenComparing(Comparator.nullsLast(Comparator.comparing(ClientQuotaRecord::clientId)))
|
||||
.thenComparing(Comparator.nullsLast(Comparator.comparing(ClientQuotaRecord::ip)));
|
||||
|
||||
private final ClientQuotaService clientQuotaService;
|
||||
|
||||
@Override
|
||||
|
@ -35,8 +41,11 @@ public class ClientQuotasController extends AbstractController implements Client
|
|||
.build();
|
||||
|
||||
Mono<ResponseEntity<Flux<ClientQuotasDTO>>> operation =
|
||||
Mono.just(clientQuotaService.list(getCluster(clusterName)).map(this::mapToDto))
|
||||
.map(ResponseEntity::ok);
|
||||
Mono.just(
|
||||
clientQuotaService.list(getCluster(clusterName))
|
||||
.sort(QUOTA_RECORDS_COMPARATOR)
|
||||
.map(this::mapToDto)
|
||||
).map(ResponseEntity::ok);
|
||||
|
||||
return validateAccess(context)
|
||||
.then(operation)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.provectus.kafka.ui.service.quota;
|
||||
|
||||
import jakarta.annotation.Nullable;
|
||||
import java.util.Comparator;
|
||||
import java.util.Map;
|
||||
import org.apache.kafka.common.quota.ClientQuotaEntity;
|
||||
|
||||
|
@ -10,11 +9,6 @@ public record ClientQuotaRecord(@Nullable String user,
|
|||
@Nullable String ip,
|
||||
Map<String, Double> quotas) {
|
||||
|
||||
static final Comparator<ClientQuotaRecord> COMPARATOR =
|
||||
Comparator.<ClientQuotaRecord, String>comparing(r -> r.user)
|
||||
.thenComparing(r -> r.clientId)
|
||||
.thenComparing(r -> r.ip);
|
||||
|
||||
static ClientQuotaRecord create(ClientQuotaEntity entity, Map<String, Double> quotas) {
|
||||
return new ClientQuotaRecord(
|
||||
entity.entries().get(ClientQuotaEntity.USER),
|
||||
|
|
|
@ -37,12 +37,8 @@ public class ClientQuotaService {
|
|||
public Flux<ClientQuotaRecord> list(KafkaCluster cluster) {
|
||||
return adminClientService.get(cluster)
|
||||
.flatMap(ac -> ac.getClientQuotas(ClientQuotaFilter.all()))
|
||||
.flatMapIterable(map ->
|
||||
map.entrySet().stream()
|
||||
.map(e -> ClientQuotaRecord.create(e.getKey(), e.getValue()))
|
||||
.sorted(ClientQuotaRecord.COMPARATOR)
|
||||
.toList()
|
||||
);
|
||||
.flatMapIterable(Map::entrySet)
|
||||
.map(e -> ClientQuotaRecord.create(e.getKey(), e.getValue()));
|
||||
}
|
||||
|
||||
//returns 201 if new entity was created, 200 if existing was updated, 204 if existing was deleted
|
||||
|
|
Loading…
Add table
Reference in a new issue