From 2fef0a32bc8ea797baf31bc6f6b7c81bb7740fc4 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Thu, 13 Jun 2024 13:08:19 +0530 Subject: [PATCH] cks: fix list apis response count (#8701) * cks: fix list apis count Fixes count value in listKubernetesClusters and listSupportedKubernetesVersions APIs response. --- .../cluster/KubernetesClusterManagerImpl.java | 8 ++++---- .../version/KubernetesVersionManagerImpl.java | 14 +++++++++----- .../version/KubernetesVersionServiceTest.java | 17 +++++++++-------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java index 281fe84089f..04c8a5d7554 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java @@ -1486,13 +1486,13 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne if (clusterType != null) { sc.setParameters("cluster_type", clusterType); } - List kubernetesClusters = kubernetesClusterDao.search(sc, searchFilter); - for (KubernetesClusterVO cluster : kubernetesClusters) { + Pair, Integer> kubernetesClustersAndCount = kubernetesClusterDao.searchAndCount(sc, searchFilter); + for (KubernetesClusterVO cluster : kubernetesClustersAndCount.first()) { KubernetesClusterResponse clusterResponse = createKubernetesClusterResponse(cluster.getId()); responsesList.add(clusterResponse); } - ListResponse response = new ListResponse(); - response.setResponses(responsesList); + ListResponse response = new ListResponse<>(); + response.setResponses(responsesList, kubernetesClustersAndCount.second()); return response; } diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/version/KubernetesVersionManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/version/KubernetesVersionManagerImpl.java index b2dafbf70bc..f31dc36768f 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/version/KubernetesVersionManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/version/KubernetesVersionManagerImpl.java @@ -52,6 +52,7 @@ import com.cloud.storage.dao.VMTemplateZoneDao; import com.cloud.template.TemplateApiService; import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.AccountManager; +import com.cloud.utils.Pair; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Filter; @@ -119,13 +120,14 @@ public class KubernetesVersionManagerImpl extends ManagerBase implements Kuberne return response; } - private ListResponse createKubernetesSupportedVersionListResponse(List versions) { + private ListResponse createKubernetesSupportedVersionListResponse( + List versions, Integer count) { List responseList = new ArrayList<>(); for (KubernetesSupportedVersionVO version : versions) { responseList.add(createKubernetesSupportedVersionResponse(version)); } ListResponse response = new ListResponse<>(); - response.setResponses(responseList); + response.setResponses(responseList, count); return response; } @@ -280,10 +282,12 @@ public class KubernetesVersionManagerImpl extends ManagerBase implements Kuberne if(keyword != null){ sc.setParameters("keyword", "%" + keyword + "%"); } - List versions = kubernetesSupportedVersionDao.search(sc, searchFilter); - versions = filterKubernetesSupportedVersions(versions, minimumSemanticVersion); + Pair, Integer> versionsAndCount = + kubernetesSupportedVersionDao.searchAndCount(sc, searchFilter); + List versions = + filterKubernetesSupportedVersions(versionsAndCount.first(), minimumSemanticVersion); - return createKubernetesSupportedVersionListResponse(versions); + return createKubernetesSupportedVersionListResponse(versions, versionsAndCount.second()); } @Override diff --git a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/version/KubernetesVersionServiceTest.java b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/version/KubernetesVersionServiceTest.java index d92b2c438c0..d3412bbf750 100644 --- a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/version/KubernetesVersionServiceTest.java +++ b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/version/KubernetesVersionServiceTest.java @@ -35,6 +35,7 @@ import org.apache.cloudstack.api.response.ListResponse; import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine; import org.apache.cloudstack.framework.config.ConfigKey; +import org.apache.commons.collections.CollectionUtils; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -66,6 +67,7 @@ import com.cloud.user.AccountManager; import com.cloud.user.AccountVO; import com.cloud.user.User; import com.cloud.user.UserVO; +import com.cloud.utils.Pair; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.db.Filter; import com.cloud.utils.db.SearchBuilder; @@ -142,14 +144,13 @@ public class KubernetesVersionServiceTest { when(versionVO.getSemanticVersion()).thenReturn(KubernetesVersionService.MIN_KUBERNETES_VERSION); versionVOs.add(versionVO); when(kubernetesSupportedVersionDao.findById(Mockito.anyLong())).thenReturn(versionVO); - when(kubernetesSupportedVersionDao.search(Mockito.any(SearchCriteria.class), Mockito.any(Filter.class))).thenReturn(versionVOs); - ListResponse response = - kubernetesVersionService.listKubernetesSupportedVersions( - cmd); - Assert.assertNotNull(response); - Assert.assertEquals(Integer.valueOf(1), response.getCount()); - Assert.assertEquals(1, response.getResponses().size()); - Assert.assertEquals(KubernetesVersionService.MIN_KUBERNETES_VERSION, response.getResponses().get(0).getSemanticVersion()); + when(kubernetesSupportedVersionDao.searchAndCount(Mockito.any(SearchCriteria.class), + Mockito.any(Filter.class))).thenReturn(new Pair<>(versionVOs, versionVOs.size())); + ListResponse versionsResponse = + kubernetesVersionService.listKubernetesSupportedVersions(cmd); + Assert.assertEquals(versionVOs.size(), versionsResponse.getCount().intValue()); + Assert.assertTrue(CollectionUtils.isNotEmpty(versionsResponse.getResponses())); + Assert.assertEquals(versionVOs.size(), versionsResponse.getResponses().size()); } @Test(expected = InvalidParameterValueException.class)