diff --git a/src/main/java/com/michelin/ns4kafka/controller/quota/ResourceQuotaController.java b/src/main/java/com/michelin/ns4kafka/controller/quota/ResourceQuotaController.java index 486a92bc9..449c239c1 100644 --- a/src/main/java/com/michelin/ns4kafka/controller/quota/ResourceQuotaController.java +++ b/src/main/java/com/michelin/ns4kafka/controller/quota/ResourceQuotaController.java @@ -127,7 +127,7 @@ public HttpResponse apply( throw new ResourceValidationException(quota, validationErrors); } - Optional resourceQuotaOptional = resourceQuotaService.findForNamespace(namespace); + Optional resourceQuotaOptional = resourceQuotaService.findByNamespace(namespace); if (resourceQuotaOptional.isPresent() && resourceQuotaOptional.get().equals(quota)) { return formatHttpResponse(quota, ApplyStatus.UNCHANGED); } @@ -156,11 +156,10 @@ public HttpResponse apply( * @return An HTTP response */ @Delete - public HttpResponse> bulkDelete( + public HttpResponse> delete( String namespace, @QueryValue(defaultValue = "*") String name, @QueryValue(defaultValue = "false") boolean dryrun) { - List resourceQuotas = resourceQuotaService.findByWildcardName(namespace, name); if (resourceQuotas.isEmpty()) { @@ -178,34 +177,4 @@ public HttpResponse> bulkDelete( return HttpResponse.ok(resourceQuotas); } - - /** - * Delete a quota. - * - * @param namespace The namespace - * @param name The resource quota - * @param dryrun Is dry run mode or not? - * @return An HTTP response - * @deprecated use {@link #bulkDelete(String, String, boolean)} instead. - */ - @Delete("/{name}{?dryrun}") - @Deprecated(since = "1.13.0") - public HttpResponse delete( - String namespace, String name, @QueryValue(defaultValue = "false") boolean dryrun) { - Optional resourceQuota = resourceQuotaService.findByName(namespace, name); - if (resourceQuota.isEmpty()) { - return HttpResponse.notFound(); - } - - if (dryrun) { - return HttpResponse.noContent(); - } - - ResourceQuota resourceQuotaToDelete = resourceQuota.get(); - - sendEventLog(resourceQuotaToDelete, ApplyStatus.DELETED, resourceQuotaToDelete.getSpec(), null, EMPTY_STRING); - - resourceQuotaService.delete(resourceQuotaToDelete); - return HttpResponse.noContent(); - } } diff --git a/src/main/java/com/michelin/ns4kafka/repository/ResourceQuotaRepository.java b/src/main/java/com/michelin/ns4kafka/repository/ResourceQuotaRepository.java index 573f1f660..b2ae11805 100644 --- a/src/main/java/com/michelin/ns4kafka/repository/ResourceQuotaRepository.java +++ b/src/main/java/com/michelin/ns4kafka/repository/ResourceQuotaRepository.java @@ -19,7 +19,7 @@ package com.michelin.ns4kafka.repository; import com.michelin.ns4kafka.model.quota.ResourceQuota; -import java.util.List; +import java.util.Collection; import java.util.Optional; /** Resource quota repository. */ @@ -29,7 +29,7 @@ public interface ResourceQuotaRepository { * * @return The resource quotas */ - List findAll(); + Collection findAll(); /** * Get resource quota by namespace. @@ -37,7 +37,7 @@ public interface ResourceQuotaRepository { * @param namespace The namespace used to research * @return The resource quotas associated to the namespace */ - Optional findForNamespace(String namespace); + Optional findByNamespace(String namespace); /** * Create a resource quota. diff --git a/src/main/java/com/michelin/ns4kafka/repository/kafka/KafkaResourceQuotaRepository.java b/src/main/java/com/michelin/ns4kafka/repository/kafka/KafkaResourceQuotaRepository.java index 2cfc065af..99453de15 100644 --- a/src/main/java/com/michelin/ns4kafka/repository/kafka/KafkaResourceQuotaRepository.java +++ b/src/main/java/com/michelin/ns4kafka/repository/kafka/KafkaResourceQuotaRepository.java @@ -31,8 +31,7 @@ import io.micronaut.scheduling.TaskScheduler; import jakarta.inject.Named; import jakarta.inject.Singleton; -import java.util.ArrayList; -import java.util.List; +import java.util.Collection; import java.util.Optional; import org.apache.kafka.clients.admin.AdminClient; import org.apache.kafka.clients.consumer.ConsumerRecord; @@ -64,8 +63,14 @@ public KafkaResourceQuotaRepository( super(kafkaTopic, kafkaProducer, adminClient, ns4KafkaProperties, taskScheduler); } + /** + * Get the message key for a resource quota message, which is the namespace. + * + * @param message The resource quota message + * @return The message key + */ @Override - String getMessageKey(ResourceQuota message) { + public String getMessageKey(ResourceQuota message) { return message.getMetadata().getNamespace(); } @@ -75,8 +80,8 @@ String getMessageKey(ResourceQuota message) { * @return The resource quotas */ @Override - public List findAll() { - return new ArrayList<>(getKafkaStore().values()); + public Collection findAll() { + return getKafkaStore().values(); } /** @@ -86,11 +91,8 @@ public List findAll() { * @return A resource quota */ @Override - public Optional findForNamespace(String namespace) { - return getKafkaStore().values().stream() - .filter(resourceQuota -> - resourceQuota.getMetadata().getNamespace().equals(namespace)) - .findFirst(); + public Optional findByNamespace(String namespace) { + return Optional.ofNullable(getKafkaStore().get(namespace)); } /** @@ -100,7 +102,7 @@ public Optional findForNamespace(String namespace) { */ @Override @Topic(value = "${ns4kafka.store.kafka.topics.prefix}.resource-quotas") - void receive(ConsumerRecord message) { + public void receive(ConsumerRecord message) { super.receive(message); } diff --git a/src/main/java/com/michelin/ns4kafka/service/NamespaceService.java b/src/main/java/com/michelin/ns4kafka/service/NamespaceService.java index c90c878bb..e255240d6 100644 --- a/src/main/java/com/michelin/ns4kafka/service/NamespaceService.java +++ b/src/main/java/com/michelin/ns4kafka/service/NamespaceService.java @@ -227,7 +227,7 @@ public List findAllResourcesByNamespace(Namespace namespace) { .map(ace -> ACCESS_CONTROL_ENTRY + "/" + ace.getMetadata().getName()), resourceQuotaService - .findForNamespace(namespace.getMetadata().getName()) + .findByNamespace(namespace.getMetadata().getName()) .stream() .map(resourceQuota -> RESOURCE_QUOTA + "/" + resourceQuota.getMetadata().getName()), diff --git a/src/main/java/com/michelin/ns4kafka/service/ResourceQuotaService.java b/src/main/java/com/michelin/ns4kafka/service/ResourceQuotaService.java index 5c66b8a3d..c794b67c4 100644 --- a/src/main/java/com/michelin/ns4kafka/service/ResourceQuotaService.java +++ b/src/main/java/com/michelin/ns4kafka/service/ResourceQuotaService.java @@ -75,8 +75,8 @@ public class ResourceQuotaService { * @param namespace The namespace used to research * @return The researched resource quota */ - public Optional findForNamespace(String namespace) { - return resourceQuotaRepository.findForNamespace(namespace); + public Optional findByNamespace(String namespace) { + return resourceQuotaRepository.findByNamespace(namespace); } /** @@ -88,7 +88,7 @@ public Optional findForNamespace(String namespace) { */ public List findByWildcardName(String namespace, String name) { List nameFilterPatterns = RegexUtils.convertWildcardStringsToRegex(List.of(name)); - return findForNamespace(namespace).stream() + return findByNamespace(namespace).stream() .filter(quota -> RegexUtils.isResourceCoveredByRegex(quota.getMetadata().getName(), nameFilterPatterns)) .toList(); @@ -102,7 +102,7 @@ public List findByWildcardName(String namespace, String name) { * @return The researched resource quota */ public Optional findByName(String namespace, String quota) { - return findForNamespace(namespace).stream() + return findByNamespace(namespace).stream() .filter(resourceQuota -> resourceQuota.getMetadata().getName().equals(quota)) .findFirst(); } @@ -254,7 +254,7 @@ public long getCurrentCountConnectorsByNamespace(Namespace namespace) { */ public List validateTopicQuota(Namespace namespace, Optional existingTopic, Topic newTopic) { Optional resourceQuotaOptional = - findForNamespace(namespace.getMetadata().getName()); + findByNamespace(namespace.getMetadata().getName()); if (resourceQuotaOptional.isEmpty()) { return List.of(); } @@ -318,7 +318,7 @@ public List validateTopicQuota(Namespace namespace, Optional exis */ public List validateConnectorQuota(Namespace namespace) { Optional resourceQuotaOptional = - findForNamespace(namespace.getMetadata().getName()); + findByNamespace(namespace.getMetadata().getName()); if (resourceQuotaOptional.isEmpty()) { return List.of(); } @@ -345,7 +345,7 @@ public List validateConnectorQuota(Namespace namespace) { public List getUsedQuotaByNamespaces(List namespaces) { return namespaces.stream() .map(namespace -> getUsedResourcesByQuotaByNamespace( - namespace, findForNamespace(namespace.getMetadata().getName()))) + namespace, findByNamespace(namespace.getMetadata().getName()))) .toList(); } diff --git a/src/main/java/com/michelin/ns4kafka/service/executor/UserAsyncExecutor.java b/src/main/java/com/michelin/ns4kafka/service/executor/UserAsyncExecutor.java index c92ad7071..bde5bf744 100644 --- a/src/main/java/com/michelin/ns4kafka/service/executor/UserAsyncExecutor.java +++ b/src/main/java/com/michelin/ns4kafka/service/executor/UserAsyncExecutor.java @@ -21,7 +21,6 @@ import static com.michelin.ns4kafka.util.FormatErrorUtils.invalidResetPasswordProvider; import static com.michelin.ns4kafka.util.enumation.Kind.KAFKA_USER_RESET_PASSWORD; -import com.michelin.ns4kafka.model.quota.ResourceQuota; import com.michelin.ns4kafka.property.ManagedClusterProperties; import com.michelin.ns4kafka.repository.NamespaceRepository; import com.michelin.ns4kafka.repository.ResourceQuotaRepository; @@ -34,7 +33,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -136,16 +134,14 @@ public String resetPassword(String user) throws ExecutionException, InterruptedE */ private Map> collectNs4KafkaQuotas() { return namespaceRepository.findAllForCluster(managedClusterProperties.getName()).stream() - .collect(Collectors.toMap(namespace -> namespace.getSpec().getKafkaUser(), namespace -> { - Optional quota = quotaRepository.findForNamespace( - namespace.getMetadata().getName()); - return quota.map(resourceQuota -> resourceQuota.getSpec().entrySet().stream() - .filter(q -> q.getKey().startsWith(USER_QUOTA_PREFIX)) - .collect(Collectors.toMap( - q -> q.getKey().substring(USER_QUOTA_PREFIX.length()), - q -> Double.parseDouble(q.getValue())))) - .orElse(Map.of()); - })); + .collect(Collectors.toMap(namespace -> namespace.getSpec().getKafkaUser(), namespace -> quotaRepository + .findByNamespace(namespace.getMetadata().getName()) + .map(resourceQuota -> resourceQuota.getSpec().entrySet().stream() + .filter(q -> q.getKey().startsWith(USER_QUOTA_PREFIX)) + .collect(Collectors.toMap( + q -> q.getKey().substring(USER_QUOTA_PREFIX.length()), + q -> Double.parseDouble(q.getValue())))) + .orElse(Map.of()))); } /** Abstract user synchronizer to define the operations required for the user synchronization and password reset. */ diff --git a/src/test/java/com/michelin/ns4kafka/controller/ResourceQuotaControllerTest.java b/src/test/java/com/michelin/ns4kafka/controller/ResourceQuotaControllerTest.java index 7d337c4e3..d9c227b26 100644 --- a/src/test/java/com/michelin/ns4kafka/controller/ResourceQuotaControllerTest.java +++ b/src/test/java/com/michelin/ns4kafka/controller/ResourceQuotaControllerTest.java @@ -39,7 +39,6 @@ import com.michelin.ns4kafka.service.ResourceQuotaService; import com.michelin.ns4kafka.util.exception.ResourceValidationException; import io.micronaut.context.event.ApplicationEventPublisher; -import io.micronaut.http.HttpResponse; import io.micronaut.http.HttpStatus; import io.micronaut.security.utils.SecurityService; import java.util.List; @@ -202,7 +201,7 @@ void shouldApplyUnchanged() { when(namespaceService.findByName("test")).thenReturn(Optional.of(ns)); when(resourceQuotaService.validateNewResourceQuota(ns, resourceQuota)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace(ns.getMetadata().getName())).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaService.findByNamespace(ns.getMetadata().getName())).thenReturn(Optional.of(resourceQuota)); var response = resourceQuotaController.apply("test", resourceQuota, false); assertEquals("unchanged", response.header("X-Ns4kafka-Result")); @@ -223,7 +222,7 @@ void shouldApplyDryRun() { when(namespaceService.findByName("test")).thenReturn(Optional.of(ns)); when(resourceQuotaService.validateNewResourceQuota(ns, resourceQuota)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace(ns.getMetadata().getName())).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace(ns.getMetadata().getName())).thenReturn(Optional.empty()); var response = resourceQuotaController.apply("test", resourceQuota, true); assertEquals("created", response.header("X-Ns4kafka-Result")); @@ -246,7 +245,7 @@ void shouldApplyCreated() { when(namespaceService.findByName("test")).thenReturn(Optional.of(ns)); when(resourceQuotaService.validateNewResourceQuota(ns, resourceQuota)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace(ns.getMetadata().getName())).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace(ns.getMetadata().getName())).thenReturn(Optional.empty()); when(securityService.username()).thenReturn(Optional.of("test-user")); when(securityService.hasRole(ResourceBasedSecurityRule.IS_ADMIN)).thenReturn(false); doNothing().when(applicationEventPublisher).publishEvent(any()); @@ -282,7 +281,7 @@ void shouldApplyUpdated() { when(namespaceService.findByName("test")).thenReturn(Optional.of(ns)); when(resourceQuotaService.validateNewResourceQuota(ns, resourceQuota)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace(ns.getMetadata().getName())) + when(resourceQuotaService.findByNamespace(ns.getMetadata().getName())) .thenReturn(Optional.of(resourceQuotaExisting)); when(securityService.username()).thenReturn(Optional.of("test-user")); when(securityService.hasRole(ResourceBasedSecurityRule.IS_ADMIN)).thenReturn(false); @@ -297,70 +296,28 @@ void shouldApplyUpdated() { } @Test - @SuppressWarnings("deprecation") void shouldNotDeleteQuotaWhenNotFound() { - when(resourceQuotaService.findByName("test", "quota")).thenReturn(Optional.empty()); - HttpResponse actual = resourceQuotaController.delete("test", "quota", false); - assertEquals(HttpStatus.NOT_FOUND, actual.getStatus()); - verify(resourceQuotaService, never()).delete(ArgumentMatchers.any()); - } - - @Test - @SuppressWarnings("deprecation") - void shouldNotDeleteQuotaWhenDryRun() { - ResourceQuota resourceQuota = ResourceQuota.builder() - .metadata(Metadata.builder().cluster("local").name("quota").build()) - .spec(Map.of("count/topics", "3")) - .build(); - - when(resourceQuotaService.findByName("test", "quota")).thenReturn(Optional.of(resourceQuota)); - HttpResponse actual = resourceQuotaController.delete("test", "quota", true); - assertEquals(HttpStatus.NO_CONTENT, actual.getStatus()); - verify(resourceQuotaService, never()).delete(ArgumentMatchers.any()); - } - - @Test - @SuppressWarnings("deprecation") - void shouldDeleteQuota() { - ResourceQuota resourceQuota = ResourceQuota.builder() - .metadata(Metadata.builder().cluster("local").name("quota").build()) - .spec(Map.of("count/topics", "3")) - .build(); - - when(resourceQuotaService.findByName("test", "quota")).thenReturn(Optional.of(resourceQuota)); - when(securityService.username()).thenReturn(Optional.of("test-user")); - when(securityService.hasRole(ResourceBasedSecurityRule.IS_ADMIN)).thenReturn(false); - doNothing().when(applicationEventPublisher).publishEvent(any()); - doNothing().when(resourceQuotaService).delete(resourceQuota); - - HttpResponse actual = resourceQuotaController.delete("test", "quota", false); - assertEquals(HttpStatus.NO_CONTENT, actual.getStatus()); - verify(resourceQuotaService).delete(resourceQuota); - } - - @Test - void shouldNotBulkDeleteQuotaWhenNotFound() { when(resourceQuotaService.findByWildcardName("test", "quota*")).thenReturn(List.of()); - var actual = resourceQuotaController.bulkDelete("test", "quota*", false); + var actual = resourceQuotaController.delete("test", "quota*", false); assertEquals(HttpStatus.NOT_FOUND, actual.getStatus()); verify(resourceQuotaService, never()).delete(ArgumentMatchers.any()); } @Test - void shouldNotBulkDeleteQuotaInDryRunMode() { + void shouldNotDeleteQuotaInDryRunMode() { ResourceQuota resourceQuota1 = ResourceQuota.builder() .metadata(Metadata.builder().cluster("local").name("quota1").build()) .spec(Map.of("count/topics", "3")) .build(); when(resourceQuotaService.findByWildcardName("test", "quota*")).thenReturn(List.of(resourceQuota1)); - var actual = resourceQuotaController.bulkDelete("test", "quota*", true); + var actual = resourceQuotaController.delete("test", "quota*", true); assertEquals(HttpStatus.OK, actual.getStatus()); verify(resourceQuotaService, never()).delete(ArgumentMatchers.any()); } @Test - void shouldBulkDeleteQuota() { + void shouldDeleteQuota() { ResourceQuota resourceQuota = ResourceQuota.builder() .metadata(Metadata.builder().cluster("local").name("quota").build()) .spec(Map.of("count/topics", "3")) @@ -372,7 +329,7 @@ void shouldBulkDeleteQuota() { doNothing().when(applicationEventPublisher).publishEvent(any()); doNothing().when(resourceQuotaService).delete(resourceQuota); - var actual = resourceQuotaController.bulkDelete("test", "quota*", false); + var actual = resourceQuotaController.delete("test", "quota*", false); assertEquals(HttpStatus.OK, actual.getStatus()); verify(resourceQuotaService).delete(resourceQuota); } diff --git a/src/test/java/com/michelin/ns4kafka/service/NamespaceServiceTest.java b/src/test/java/com/michelin/ns4kafka/service/NamespaceServiceTest.java index f791bd635..184d3ac8d 100644 --- a/src/test/java/com/michelin/ns4kafka/service/NamespaceServiceTest.java +++ b/src/test/java/com/michelin/ns4kafka/service/NamespaceServiceTest.java @@ -517,7 +517,7 @@ void shouldListAllNamespaceResourcesWhenEmpty() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertTrue(result.isEmpty()); @@ -543,7 +543,7 @@ void shouldListAllNamespaceResourcesOfTypeTopic() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); @@ -572,7 +572,7 @@ void shouldListAllNamespaceResourcesOfTypeConnect() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); @@ -601,7 +601,7 @@ void shouldListAllNamespaceResourcesOfTypeRoleBinding() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of(rb)); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); @@ -627,7 +627,7 @@ void shouldListAllNamespaceResourcesOfTypeAccessControlEntry() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of(ace)); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); @@ -656,7 +656,7 @@ void shouldListAllNamespaceResourcesOfTypeConnectCluster() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of(connectCluster)); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.empty()); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); @@ -685,7 +685,7 @@ void shouldListAllNamespaceResourcesOfTypeQuota() { when(roleBindingService.findAllForNamespace("namespace")).thenReturn(List.of()); when(aclService.findAllForNamespace(ns)).thenReturn(List.of()); when(connectClusterService.findAllForNamespaceWithOwnerPermission(ns)).thenReturn(List.of()); - when(resourceQuotaService.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaService.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); List result = namespaceService.findAllResourcesByNamespace(ns); assertEquals(1, result.size()); diff --git a/src/test/java/com/michelin/ns4kafka/service/ResourceQuotaServiceTest.java b/src/test/java/com/michelin/ns4kafka/service/ResourceQuotaServiceTest.java index 437fc4f14..c0cd05925 100644 --- a/src/test/java/com/michelin/ns4kafka/service/ResourceQuotaServiceTest.java +++ b/src/test/java/com/michelin/ns4kafka/service/ResourceQuotaServiceTest.java @@ -69,9 +69,9 @@ void shouldFindQuota() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); - assertEquals(Optional.of(resourceQuota), resourceQuotaService.findForNamespace("namespace")); + assertEquals(Optional.of(resourceQuota), resourceQuotaService.findByNamespace("namespace")); } @Test @@ -83,11 +83,10 @@ void shouldGetQuotasWhenEmpty() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.empty()); - assertTrue(resourceQuotaService - .findForNamespace(ns.getMetadata().getName()) - .isEmpty()); + assertTrue( + resourceQuotaService.findByNamespace(ns.getMetadata().getName()).isEmpty()); } @Test @@ -101,7 +100,7 @@ void shouldListQuotasWithoutParameter() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); assertEquals(List.of(resourceQuota), resourceQuotaService.findByWildcardName("namespace", "*")); } @@ -117,7 +116,7 @@ void shouldListQuotasWithNameParameter() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); assertEquals(List.of(resourceQuota), resourceQuotaService.findByWildcardName("namespace", "quotaName")); assertTrue(resourceQuotaService @@ -136,7 +135,7 @@ void shouldListQuotasWithWildcardNameParameter() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); assertEquals(List.of(resourceQuota), resourceQuotaService.findByWildcardName("namespace", "*")); assertEquals(List.of(resourceQuota), resourceQuotaService.findByWildcardName("namespace", "quota????")); @@ -160,7 +159,7 @@ void shouldFindByName() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); Optional resourceQuotaOptional = resourceQuotaService.findByName(ns.getMetadata().getName(), "test"); @@ -182,7 +181,7 @@ void shouldFindByNameWrongName() { .spec(Map.of(COUNT_TOPICS.toString(), "1")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); Optional resourceQuotaOptional = resourceQuotaService.findByName(ns.getMetadata().getName(), "wrong-name"); @@ -198,7 +197,7 @@ void shouldFindByNameWhenEmpty() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.empty()); Optional resourceQuotaOptional = resourceQuotaService.findByName(ns.getMetadata().getName(), "test"); @@ -657,7 +656,7 @@ void shouldValidateTopicQuota() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); when(topicService.findAllForNamespace(ns)).thenReturn(List.of(topic1, topic2, topic3)); List validationErrors = resourceQuotaService.validateTopicQuota(ns, Optional.empty(), newTopic); @@ -679,7 +678,7 @@ void shouldValidateTopicQuotaNoQuota() { .spec(Topic.TopicSpec.builder().partitions(6).build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.empty()); List validationErrors = resourceQuotaService.validateTopicQuota(ns, Optional.empty(), newTopic); assertEquals(0, validationErrors.size()); @@ -741,7 +740,7 @@ void shouldValidateTopicQuotaExceed() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); when(topicService.findAllForNamespace(ns)).thenReturn(List.of(topic1, topic2, topic3)); List validationErrors = resourceQuotaService.validateTopicQuota(ns, Optional.empty(), newTopic); @@ -815,7 +814,7 @@ void shouldValidateUpdateTopicQuotaExceed() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); when(topicService.findAllForNamespace(ns)).thenReturn(List.of(topic1, topic2, topic3)); List validationErrors = resourceQuotaService.validateTopicQuota(ns, Optional.of(topic1), newTopic); @@ -840,7 +839,7 @@ void shouldValidateConnectorQuota() { .spec(Map.of(COUNT_CONNECTORS.toString(), "3")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); when(connectorService.findAllForNamespace(ns)) .thenReturn(List.of( Connector.builder() @@ -863,7 +862,7 @@ void shouldValidateConnectorQuotaNoQuota() { .build()) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.empty()); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.empty()); List validationErrors = resourceQuotaService.validateConnectorQuota(ns); assertEquals(0, validationErrors.size()); @@ -883,7 +882,7 @@ void shouldValidateConnectorQuotaExceed() { .spec(Map.of(COUNT_CONNECTORS.toString(), "2")) .build(); - when(resourceQuotaRepository.findForNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace("namespace")).thenReturn(Optional.of(resourceQuota)); when(connectorService.findAllForNamespace(ns)) .thenReturn(List.of( Connector.builder() @@ -1105,7 +1104,7 @@ void shouldGetUsedQuotaByNamespaces() { Connector.builder() .metadata(Metadata.builder().name("connect2").build()) .build())); - when(resourceQuotaRepository.findForNamespace(any())).thenReturn(Optional.of(resourceQuota)); + when(resourceQuotaRepository.findByNamespace(any())).thenReturn(Optional.of(resourceQuota)); List response = resourceQuotaService.getUsedQuotaByNamespaces(List.of(ns1, ns2, ns3, ns4));