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 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)