Skip to content

Commit 2fef0a3

Browse files
authored
cks: fix list apis response count (#8701)
* cks: fix list apis count Fixes count value in listKubernetesClusters and listSupportedKubernetesVersions APIs response.
1 parent 517cddc commit 2fef0a3

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,13 +1486,13 @@ public ListResponse<KubernetesClusterResponse> listKubernetesClusters(ListKubern
14861486
if (clusterType != null) {
14871487
sc.setParameters("cluster_type", clusterType);
14881488
}
1489-
List<KubernetesClusterVO> kubernetesClusters = kubernetesClusterDao.search(sc, searchFilter);
1490-
for (KubernetesClusterVO cluster : kubernetesClusters) {
1489+
Pair<List<KubernetesClusterVO>, Integer> kubernetesClustersAndCount = kubernetesClusterDao.searchAndCount(sc, searchFilter);
1490+
for (KubernetesClusterVO cluster : kubernetesClustersAndCount.first()) {
14911491
KubernetesClusterResponse clusterResponse = createKubernetesClusterResponse(cluster.getId());
14921492
responsesList.add(clusterResponse);
14931493
}
1494-
ListResponse<KubernetesClusterResponse> response = new ListResponse<KubernetesClusterResponse>();
1495-
response.setResponses(responsesList);
1494+
ListResponse<KubernetesClusterResponse> response = new ListResponse<>();
1495+
response.setResponses(responsesList, kubernetesClustersAndCount.second());
14961496
return response;
14971497
}
14981498

plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/version/KubernetesVersionManagerImpl.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import com.cloud.template.TemplateApiService;
5353
import com.cloud.template.VirtualMachineTemplate;
5454
import com.cloud.user.AccountManager;
55+
import com.cloud.utils.Pair;
5556
import com.cloud.utils.component.ComponentContext;
5657
import com.cloud.utils.component.ManagerBase;
5758
import com.cloud.utils.db.Filter;
@@ -119,13 +120,14 @@ private KubernetesSupportedVersionResponse createKubernetesSupportedVersionRespo
119120
return response;
120121
}
121122

122-
private ListResponse<KubernetesSupportedVersionResponse> createKubernetesSupportedVersionListResponse(List<KubernetesSupportedVersionVO> versions) {
123+
private ListResponse<KubernetesSupportedVersionResponse> createKubernetesSupportedVersionListResponse(
124+
List<KubernetesSupportedVersionVO> versions, Integer count) {
123125
List<KubernetesSupportedVersionResponse> responseList = new ArrayList<>();
124126
for (KubernetesSupportedVersionVO version : versions) {
125127
responseList.add(createKubernetesSupportedVersionResponse(version));
126128
}
127129
ListResponse<KubernetesSupportedVersionResponse> response = new ListResponse<>();
128-
response.setResponses(responseList);
130+
response.setResponses(responseList, count);
129131
return response;
130132
}
131133

@@ -280,10 +282,12 @@ public ListResponse<KubernetesSupportedVersionResponse> listKubernetesSupportedV
280282
if(keyword != null){
281283
sc.setParameters("keyword", "%" + keyword + "%");
282284
}
283-
List <KubernetesSupportedVersionVO> versions = kubernetesSupportedVersionDao.search(sc, searchFilter);
284-
versions = filterKubernetesSupportedVersions(versions, minimumSemanticVersion);
285+
Pair<List<KubernetesSupportedVersionVO>, Integer> versionsAndCount =
286+
kubernetesSupportedVersionDao.searchAndCount(sc, searchFilter);
287+
List<KubernetesSupportedVersionVO> versions =
288+
filterKubernetesSupportedVersions(versionsAndCount.first(), minimumSemanticVersion);
285289

286-
return createKubernetesSupportedVersionListResponse(versions);
290+
return createKubernetesSupportedVersionListResponse(versions, versionsAndCount.second());
287291
}
288292

289293
@Override

plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/version/KubernetesVersionServiceTest.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.apache.cloudstack.context.CallContext;
3636
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
3737
import org.apache.cloudstack.framework.config.ConfigKey;
38+
import org.apache.commons.collections.CollectionUtils;
3839
import org.junit.After;
3940
import org.junit.Assert;
4041
import org.junit.Before;
@@ -66,6 +67,7 @@
6667
import com.cloud.user.AccountVO;
6768
import com.cloud.user.User;
6869
import com.cloud.user.UserVO;
70+
import com.cloud.utils.Pair;
6971
import com.cloud.utils.component.ComponentContext;
7072
import com.cloud.utils.db.Filter;
7173
import com.cloud.utils.db.SearchBuilder;
@@ -142,14 +144,13 @@ public void listKubernetesSupportedVersionsTest() {
142144
when(versionVO.getSemanticVersion()).thenReturn(KubernetesVersionService.MIN_KUBERNETES_VERSION);
143145
versionVOs.add(versionVO);
144146
when(kubernetesSupportedVersionDao.findById(Mockito.anyLong())).thenReturn(versionVO);
145-
when(kubernetesSupportedVersionDao.search(Mockito.any(SearchCriteria.class), Mockito.any(Filter.class))).thenReturn(versionVOs);
146-
ListResponse<KubernetesSupportedVersionResponse> response =
147-
kubernetesVersionService.listKubernetesSupportedVersions(
148-
cmd);
149-
Assert.assertNotNull(response);
150-
Assert.assertEquals(Integer.valueOf(1), response.getCount());
151-
Assert.assertEquals(1, response.getResponses().size());
152-
Assert.assertEquals(KubernetesVersionService.MIN_KUBERNETES_VERSION, response.getResponses().get(0).getSemanticVersion());
147+
when(kubernetesSupportedVersionDao.searchAndCount(Mockito.any(SearchCriteria.class),
148+
Mockito.any(Filter.class))).thenReturn(new Pair<>(versionVOs, versionVOs.size()));
149+
ListResponse<KubernetesSupportedVersionResponse> versionsResponse =
150+
kubernetesVersionService.listKubernetesSupportedVersions(cmd);
151+
Assert.assertEquals(versionVOs.size(), versionsResponse.getCount().intValue());
152+
Assert.assertTrue(CollectionUtils.isNotEmpty(versionsResponse.getResponses()));
153+
Assert.assertEquals(versionVOs.size(), versionsResponse.getResponses().size());
153154
}
154155

155156
@Test(expected = InvalidParameterValueException.class)

0 commit comments

Comments
 (0)