Skip to content

Commit 45be644

Browse files
shwstpprdhslove
authored andcommitted
cks: fix list apis response count (apache#8701)
* cks: fix list apis count Fixes count value in listKubernetesClusters and listSupportedKubernetesVersions APIs response.
1 parent 6f81cc3 commit 45be644

3 files changed

Lines changed: 22 additions & 17 deletions

File tree

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
@@ -1487,13 +1487,13 @@ public ListResponse<KubernetesClusterResponse> listKubernetesClusters(ListKubern
14871487
if (clusterType != null) {
14881488
sc.setParameters("cluster_type", clusterType);
14891489
}
1490-
List<KubernetesClusterVO> kubernetesClusters = kubernetesClusterDao.search(sc, searchFilter);
1491-
for (KubernetesClusterVO cluster : kubernetesClusters) {
1490+
Pair<List<KubernetesClusterVO>, Integer> kubernetesClustersAndCount = kubernetesClusterDao.searchAndCount(sc, searchFilter);
1491+
for (KubernetesClusterVO cluster : kubernetesClustersAndCount.first()) {
14921492
KubernetesClusterResponse clusterResponse = createKubernetesClusterResponse(cluster.getId());
14931493
responsesList.add(clusterResponse);
14941494
}
1495-
ListResponse<KubernetesClusterResponse> response = new ListResponse<KubernetesClusterResponse>();
1496-
response.setResponses(responsesList);
1495+
ListResponse<KubernetesClusterResponse> response = new ListResponse<>();
1496+
response.setResponses(responsesList, kubernetesClustersAndCount.second());
14971497
return response;
14981498
}
14991499

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
@@ -51,6 +51,7 @@
5151
import com.cloud.template.TemplateApiService;
5252
import com.cloud.template.VirtualMachineTemplate;
5353
import com.cloud.user.AccountManager;
54+
import com.cloud.utils.Pair;
5455
import com.cloud.utils.component.ComponentContext;
5556
import com.cloud.utils.component.ManagerBase;
5657
import com.cloud.utils.db.Filter;
@@ -117,13 +118,14 @@ private KubernetesSupportedVersionResponse createKubernetesSupportedVersionRespo
117118
return response;
118119
}
119120

120-
private ListResponse<KubernetesSupportedVersionResponse> createKubernetesSupportedVersionListResponse(List<KubernetesSupportedVersionVO> versions) {
121+
private ListResponse<KubernetesSupportedVersionResponse> createKubernetesSupportedVersionListResponse(
122+
List<KubernetesSupportedVersionVO> versions, Integer count) {
121123
List<KubernetesSupportedVersionResponse> responseList = new ArrayList<>();
122124
for (KubernetesSupportedVersionVO version : versions) {
123125
responseList.add(createKubernetesSupportedVersionResponse(version));
124126
}
125127
ListResponse<KubernetesSupportedVersionResponse> response = new ListResponse<>();
126-
response.setResponses(responseList);
128+
response.setResponses(responseList, count);
127129
return response;
128130
}
129131

@@ -279,10 +281,12 @@ public ListResponse<KubernetesSupportedVersionResponse> listKubernetesSupportedV
279281
sc.addOr("uuid", SearchCriteria.Op.LIKE, "%" + keyword + "%");
280282
sc.setParameters("keyword", "%" + keyword + "%");
281283
}
282-
List <KubernetesSupportedVersionVO> versions = kubernetesSupportedVersionDao.search(sc, searchFilter);
283-
versions = filterKubernetesSupportedVersions(versions, minimumSemanticVersion);
284+
Pair<List<KubernetesSupportedVersionVO>, Integer> versionsAndCount =
285+
kubernetesSupportedVersionDao.searchAndCount(sc, searchFilter);
286+
List<KubernetesSupportedVersionVO> versions =
287+
filterKubernetesSupportedVersions(versionsAndCount.first(), minimumSemanticVersion);
284288

285-
return createKubernetesSupportedVersionListResponse(versions);
289+
return createKubernetesSupportedVersionListResponse(versions, versionsAndCount.second());
286290
}
287291

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