From 1b716960fc77d2f9cb37f0f11ff4c171a6b559cc Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 16 Jun 2022 13:34:13 +0530 Subject: [PATCH] api: Add vpc name and uuid to VMs list response (nics) and nics response (#6461) --- .../cloudstack/api/response/NicResponse.java | 24 +++++++++++++++++++ .../java/com/cloud/api/ApiResponseHelper.java | 11 +++++++++ .../api/query/dao/UserVmJoinDaoImpl.java | 10 ++++++++ 3 files changed, 45 insertions(+) diff --git a/api/src/main/java/org/apache/cloudstack/api/response/NicResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/NicResponse.java index 72a2bbcabfd..4521a82aebf 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/NicResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/NicResponse.java @@ -210,6 +210,14 @@ public class NicResponse extends BaseResponse { this.extraDhcpOptions = extraDhcpOptions; } + @SerializedName(ApiConstants.VPC_ID) + @Param(description = "Id of the vpc to which the nic belongs") + private String vpcId; + + @SerializedName(ApiConstants.VPC_NAME) + @Param(description = "name of the vpc to which the nic belongs") + private String vpcName; + @Override public int hashCode() { final int prime = 31; @@ -364,4 +372,20 @@ public class NicResponse extends BaseResponse { public void setIpAddresses(List ipAddresses) { this.ipAddresses = ipAddresses; } + + public String getVpcId() { + return vpcId; + } + + public void setVpcId(String vpcId) { + this.vpcId = vpcId; + } + + public String getVpcName() { + return vpcName; + } + + public void setVpcName(String vpcName) { + this.vpcName = vpcName; + } } diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 2afe1d7d38f..fe0b9a5c0eb 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -37,6 +37,8 @@ import java.util.stream.Collectors; import javax.inject.Inject; +import com.cloud.api.query.dao.UserVmJoinDao; +import com.cloud.network.vpc.VpcVO; import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity.ACLType; import org.apache.cloudstack.affinity.AffinityGroup; @@ -442,6 +444,8 @@ public class ApiResponseHelper implements ResponseGenerator { NetworkOfferingDao networkOfferingDao; @Inject Ipv6Service ipv6Service; + @Inject + UserVmJoinDao userVmJoinDao; @Override public UserResponse createUserResponse(User user) { @@ -4318,6 +4322,13 @@ public class ApiResponseHelper implements ResponseGenerator { response.setNsxLogicalSwitchPort(((NicVO)result).getNsxLogicalSwitchPortUuid()); } } + + UserVmJoinVO userVm = userVmJoinDao.findById(vm.getId()); + if (userVm != null && userVm.getVpcUuid() != null) { + response.setVpcId(userVm.getVpcUuid()); + VpcVO vpc = _entityMgr.findByUuidIncludingRemoved(VpcVO.class, userVm.getVpcUuid()); + response.setVpcName(vpc.getName()); + } return response; } diff --git a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java index 76e6a68c95f..978d5c0b19c 100644 --- a/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java @@ -28,6 +28,8 @@ import java.util.stream.Collectors; import javax.inject.Inject; +import com.cloud.network.vpc.VpcVO; +import com.cloud.network.vpc.dao.VpcDao; import com.cloud.storage.DiskOfferingVO; import org.apache.cloudstack.affinity.AffinityGroupResponse; import org.apache.cloudstack.annotation.AnnotationService; @@ -88,6 +90,8 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation VmDetailSearch; @@ -291,6 +295,12 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation secondaryIps = ApiDBUtils.findNicSecondaryIps(userVm.getNicId());