Skip to content

Commit 2405249

Browse files
author
Daman Arora
committed
add affinty groups to cks list response
1 parent 201e563 commit 2405249

File tree

3 files changed

+89
-0
lines changed

3 files changed

+89
-0
lines changed

api/src/main/java/org/apache/cloudstack/api/ApiConstants.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,6 +1237,12 @@ public class ApiConstants {
12371237
public static final String NODE_TYPE_OFFERING_MAP = "nodeofferings";
12381238
public static final String NODE_TYPE_TEMPLATE_MAP = "nodetemplates";
12391239
public static final String NODE_TYPE_AFFINITY_GROUP_MAP = "nodeaffinitygroups";
1240+
public static final String CONTROL_AFFINITY_GROUP_IDS = "controlaffinitygroupids";
1241+
public static final String CONTROL_AFFINITY_GROUP_NAMES = "controlaffinitygroupnames";
1242+
public static final String WORKER_AFFINITY_GROUP_IDS = "workeraffinitygroupids";
1243+
public static final String WORKER_AFFINITY_GROUP_NAMES = "workeraffinitygroupnames";
1244+
public static final String ETCD_AFFINITY_GROUP_IDS = "etcdaffinitygroupids";
1245+
public static final String ETCD_AFFINITY_GROUP_NAMES = "etcdaffinitygroupnames";
12401246

12411247
public static final String BOOT_TYPE = "boottype";
12421248
public static final String BOOT_MODE = "bootmode";

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -908,10 +908,45 @@ public KubernetesClusterResponse createKubernetesClusterResponse(long kubernetes
908908
response.setClusterType(kubernetesCluster.getClusterType());
909909
response.setCsiEnabled(kubernetesCluster.isCsiEnabled());
910910
response.setCreated(kubernetesCluster.getCreated());
911+
setNodeTypeAffinityGroupResponse(response, kubernetesCluster.getId());
911912

912913
return response;
913914
}
914915

916+
protected void setNodeTypeAffinityGroupResponse(KubernetesClusterResponse response, long clusterId) {
917+
setAffinityGroupResponseForNodeType(response, clusterId, CONTROL.name());
918+
setAffinityGroupResponseForNodeType(response, clusterId, WORKER.name());
919+
setAffinityGroupResponseForNodeType(response, clusterId, ETCD.name());
920+
}
921+
922+
protected void setAffinityGroupResponseForNodeType(KubernetesClusterResponse response, long clusterId, String nodeType) {
923+
List<Long> affinityGroupIds = kubernetesClusterAffinityGroupMapDao.listAffinityGroupIdsByClusterIdAndNodeType(clusterId, nodeType);
924+
if (affinityGroupIds == null || affinityGroupIds.isEmpty()) {
925+
return;
926+
}
927+
List<String> affinityGroupUuids = new ArrayList<>();
928+
List<String> affinityGroupNames = new ArrayList<>();
929+
for (Long affinityGroupId : affinityGroupIds) {
930+
AffinityGroupVO affinityGroup = affinityGroupDao.findById(affinityGroupId);
931+
if (affinityGroup != null) {
932+
affinityGroupUuids.add(affinityGroup.getUuid());
933+
affinityGroupNames.add(affinityGroup.getName());
934+
}
935+
}
936+
String affinityGroupUuidsCsv = String.join(",", affinityGroupUuids);
937+
String affinityGroupNamesCsv = String.join(",", affinityGroupNames);
938+
if (CONTROL.name().equals(nodeType)) {
939+
response.setControlAffinityGroupIds(affinityGroupUuidsCsv);
940+
response.setControlAffinityGroupNames(affinityGroupNamesCsv);
941+
} else if (WORKER.name().equals(nodeType)) {
942+
response.setWorkerAffinityGroupIds(affinityGroupUuidsCsv);
943+
response.setWorkerAffinityGroupNames(affinityGroupNamesCsv);
944+
} else if (ETCD.name().equals(nodeType)) {
945+
response.setEtcdAffinityGroupIds(affinityGroupUuidsCsv);
946+
response.setEtcdAffinityGroupNames(affinityGroupNamesCsv);
947+
}
948+
}
949+
915950
private DataCenter validateAndGetZoneForKubernetesCreateParameters(Long zoneId, Long networkId) {
916951
DataCenter zone = dataCenterDao.findById(zoneId);
917952
if (zone == null) {

plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,30 @@ public class KubernetesClusterResponse extends BaseResponseWithAnnotations imple
220220
@Param(description = "The date when this Kubernetes cluster was created")
221221
private Date created;
222222

223+
@SerializedName(ApiConstants.CONTROL_AFFINITY_GROUP_IDS)
224+
@Param(description = "The IDs of affinity groups associated with control nodes", since = "4.23.0")
225+
private String controlAffinityGroupIds;
226+
227+
@SerializedName(ApiConstants.CONTROL_AFFINITY_GROUP_NAMES)
228+
@Param(description = "The names of affinity groups associated with control nodes", since = "4.23.0")
229+
private String controlAffinityGroupNames;
230+
231+
@SerializedName(ApiConstants.WORKER_AFFINITY_GROUP_IDS)
232+
@Param(description = "The IDs of affinity groups associated with worker nodes", since = "4.23.0")
233+
private String workerAffinityGroupIds;
234+
235+
@SerializedName(ApiConstants.WORKER_AFFINITY_GROUP_NAMES)
236+
@Param(description = "The names of affinity groups associated with worker nodes", since = "4.23.0")
237+
private String workerAffinityGroupNames;
238+
239+
@SerializedName(ApiConstants.ETCD_AFFINITY_GROUP_IDS)
240+
@Param(description = "The IDs of affinity groups associated with etcd nodes", since = "4.23.0")
241+
private String etcdAffinityGroupIds;
242+
243+
@SerializedName(ApiConstants.ETCD_AFFINITY_GROUP_NAMES)
244+
@Param(description = "The names of affinity groups associated with etcd nodes", since = "4.23.0")
245+
private String etcdAffinityGroupNames;
246+
223247
public KubernetesClusterResponse() {
224248
}
225249

@@ -535,4 +559,28 @@ public void setCniConfigName(String cniConfigName) {
535559
public void setCsiEnabled(Boolean csiEnabled) {
536560
isCsiEnabled = csiEnabled;
537561
}
562+
563+
public void setControlAffinityGroupIds(String controlAffinityGroupIds) {
564+
this.controlAffinityGroupIds = controlAffinityGroupIds;
565+
}
566+
567+
public void setControlAffinityGroupNames(String controlAffinityGroupNames) {
568+
this.controlAffinityGroupNames = controlAffinityGroupNames;
569+
}
570+
571+
public void setWorkerAffinityGroupIds(String workerAffinityGroupIds) {
572+
this.workerAffinityGroupIds = workerAffinityGroupIds;
573+
}
574+
575+
public void setWorkerAffinityGroupNames(String workerAffinityGroupNames) {
576+
this.workerAffinityGroupNames = workerAffinityGroupNames;
577+
}
578+
579+
public void setEtcdAffinityGroupIds(String etcdAffinityGroupIds) {
580+
this.etcdAffinityGroupIds = etcdAffinityGroupIds;
581+
}
582+
583+
public void setEtcdAffinityGroupNames(String etcdAffinityGroupNames) {
584+
this.etcdAffinityGroupNames = etcdAffinityGroupNames;
585+
}
538586
}

0 commit comments

Comments
 (0)