CS-15999: added nics to domain router api response

Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java
This commit is contained in:
Alena Prokharchyk 2012-08-16 10:31:49 -07:00
parent 0bf6de3eb2
commit 335730dc65
2 changed files with 36 additions and 1 deletions

View File

@ -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<NicResponse> 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<NicResponse> nics) {
this.nics = nics;
}
}

View File

@ -1701,8 +1701,10 @@ public class ApiResponseHelper implements ResponseGenerator {
}
routerResponse.setPodId(router.getPodIdToDeployIn());
List<NicProfile> nicProfiles = ApiDBUtils.getNics(router);
List<NicResponse> nicResponses = new ArrayList<NicResponse>();
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;
}
}
}