From dd3019c7d84f6275091b9df57837a6fb3700ade3 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 23 Feb 2024 23:58:43 +0530 Subject: [PATCH 1/2] cks: fix list apis count Fixes count value in listKubernetesClusters and listSupportedKubernetesVersions APIs response. Signed-off-by: Abhishek Kumar --- .../cluster/KubernetesClusterManagerImpl.java | 8 ++++---- .../version/KubernetesVersionManagerImpl.java | 14 +++++++++----- 2 files changed, 13 insertions(+), 9 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 281fe84089fe..04c8a5d7554a 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 ListResponse listKubernetesClusters(ListKubern 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 3ea30291f431..f692a12f4667 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.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; @@ -111,13 +112,14 @@ private KubernetesSupportedVersionResponse createKubernetesSupportedVersionRespo 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; } @@ -272,10 +274,12 @@ public ListResponse listKubernetesSupportedV 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 From 73e61b42f6a4a3f83e2916389657b819f4e67bda Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Sat, 24 Feb 2024 00:30:44 +0530 Subject: [PATCH 2/2] fix test Signed-off-by: Abhishek Kumar --- .../version/KubernetesVersionServiceTest.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 d92b2c438c09..d3412bbf7508 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.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.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 void listKubernetesSupportedVersionsTest() { 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)