diff --git a/api/src/com/cloud/api/response/DomainRouterResponse.java b/api/src/com/cloud/api/response/DomainRouterResponse.java index 99885b1989f..d710aadb2e7 100644 --- a/api/src/com/cloud/api/response/DomainRouterResponse.java +++ b/api/src/com/cloud/api/response/DomainRouterResponse.java @@ -17,6 +17,7 @@ package com.cloud.api.response; import java.util.Date; +import java.util.List; import com.cloud.api.ApiConstants; import com.cloud.serializer.Param; @@ -140,6 +141,10 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti @SerializedName(ApiConstants.VPC_ID) @Param(description="VPC the network belongs to") private IdentityProxy vpcId = new IdentityProxy("vpc"); + @SerializedName("nic") @Param(description="the list of nics associated with the router", + responseObject = NicResponse.class, since="4.0") + private List nics; + @Override public Long getObjectId() { return getId(); @@ -312,4 +317,8 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti public void setVpcId(Long vpcId) { this.vpcId.setValue(vpcId); } + + public void setNics(List nics) { + this.nics = nics; + } } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 0340a941b83..a0a4c171da7 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -1701,8 +1701,10 @@ public class ApiResponseHelper implements ResponseGenerator { } routerResponse.setPodId(router.getPodIdToDeployIn()); List nicProfiles = ApiDBUtils.getNics(router); + List nicResponses = new ArrayList(); for (NicProfile singleNicProfile : nicProfiles) { Network network = ApiDBUtils.findNetworkById(singleNicProfile.getNetworkId()); + //legacy code, public/control/guest nic info is kept in nics response object if (network != null) { if (network.getTrafficType() == TrafficType.Public) { routerResponse.setPublicIp(singleNicProfile.getIp4Address()); @@ -1722,8 +1724,32 @@ public class ApiResponseHelper implements ResponseGenerator { routerResponse.setGuestNetworkId(singleNicProfile.getNetworkId()); routerResponse.setNetworkDomain(network.getNetworkDomain()); } + + NicResponse nicResponse = new NicResponse(); + nicResponse.setId(singleNicProfile.getId()); + nicResponse.setIpaddress(singleNicProfile.getIp4Address()); + nicResponse.setGateway(singleNicProfile.getGateway()); + nicResponse.setNetmask(singleNicProfile.getNetmask()); + nicResponse.setNetworkid(singleNicProfile.getNetworkId()); + nicResponse.setNetworkName(network.getName()); + + if (singleNicProfile.getBroadCastUri() != null) { + nicResponse.setBroadcastUri(singleNicProfile.getBroadCastUri().toString()); + } + if (singleNicProfile.getIsolationUri() != null) { + nicResponse.setIsolationUri(singleNicProfile.getIsolationUri().toString()); + } + + nicResponse.setTrafficType(network.getTrafficType().toString()); + if (network.getGuestType() != null) { + nicResponse.setType(network.getGuestType().toString()); + } + nicResponse.setIsDefault(singleNicProfile.isDefaultNic()); + nicResponse.setObjectName("nic"); + nicResponses.add(nicResponse); } } + routerResponse.setNics(nicResponses); } // Service Offering Info @@ -3892,4 +3918,4 @@ public class ApiResponseHelper implements ResponseGenerator { response.setObjectName("vpnconnection"); return response; } -} +} \ No newline at end of file