From 040bee327a8876de91930b1f93b47b9a98b0d4d4 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Tue, 20 Oct 2020 16:43:03 +0530 Subject: [PATCH] Adding public ip to listKubernetesClusterResponse --- .../cluster/KubernetesClusterManagerImpl.java | 11 +++++++++++ .../api/response/KubernetesClusterResponse.java | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) 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 e46435be7f51..8b8be1cf4032 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 @@ -109,6 +109,8 @@ import com.cloud.network.Networks; import com.cloud.network.PhysicalNetwork; import com.cloud.network.dao.FirewallRulesDao; +import com.cloud.network.dao.IPAddressDao; +import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.PhysicalNetworkDao; @@ -216,6 +218,8 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne @Inject protected NetworkDao networkDao; @Inject + protected IPAddressDao ipAddressDao; + @Inject protected CapacityManager capacityManager; @Inject protected ResourceManager resourceManager; @@ -610,6 +614,13 @@ public KubernetesClusterResponse createKubernetesClusterResponse(long kubernetes response.setEndpoint(kubernetesCluster.getEndpoint()); response.setNetworkId(ntwk.getUuid()); response.setAssociatedNetworkName(ntwk.getName()); + if (ntwk.getGuestType() == Network.GuestType.Isolated) { + List ipAddresses = ipAddressDao.listByAssociatedNetwork(ntwk.getId(), true); + if (ipAddresses != null && ipAddresses.size() == 1) { + response.setIpAddress(ipAddresses.get(0).getAddress().addr()); + response.setIpAddressId(ipAddresses.get(0).getUuid()); + } + } List vmResponses = new ArrayList(); List vmList = kubernetesClusterVmMapDao.listByClusterId(kubernetesCluster.getId()); ResponseView respView = ResponseView.Restricted; diff --git a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java index d5e9793ae7d4..bb3f14f56891 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java +++ b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java @@ -133,6 +133,14 @@ public class KubernetesClusterResponse extends BaseResponse implements Controlle @Param(description = "the list of virtualmachine associated with this Kubernetes cluster") private List virtualMachines; + @SerializedName(ApiConstants.IP_ADDRESS) + @Param(description = "Public IP Address of the cluster") + private String ipAddress; + + @SerializedName(ApiConstants.IP_ADDRESS_ID) + @Param(description = "Public IP Address ID of the cluster") + private String ipAddressId; + public KubernetesClusterResponse() { } @@ -324,4 +332,12 @@ public void setVirtualMachines(List virtualMachines) { public List getVirtualMachines() { return virtualMachines; } + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + public void setIpAddressId(String ipAddressId) { + this.ipAddressId = ipAddressId; + } }