diff --git a/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java b/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java index 10e65573006..398c8b7be6f 100644 --- a/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java +++ b/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java @@ -30,6 +30,9 @@ public class Site2SiteVpnConnectionResponse extends BaseResponse { @SerializedName(ApiConstants.S2S_VPN_GATEWAY_ID) @Param(description="the vpn gateway ID") private IdentityProxy vpnGatewayId= new IdentityProxy("s2s_vpn_gateway"); + + @SerializedName(ApiConstants.PUBLIC_IP) @Param(description="the public IP address") + private String ip; @SerializedName(ApiConstants.S2S_CUSTOMER_GATEWAY_ID) @Param(description="the customer gateway ID") private IdentityProxy customerGatewayId = new IdentityProxy("s2s_customer_gateway"); @@ -48,6 +51,10 @@ public class Site2SiteVpnConnectionResponse extends BaseResponse { this.vpnGatewayId.setValue(vpnGatewayId); } + public void setIp(String ip) { + this.ip = ip; + } + public void setCustomerGatewayId(Long customerGatewayId) { this.customerGatewayId.setValue(customerGatewayId); } diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index f116681c131..1102e628575 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -62,6 +62,7 @@ import com.cloud.network.NetworkManager; import com.cloud.network.NetworkProfile; import com.cloud.network.NetworkRuleConfigVO; import com.cloud.network.NetworkVO; +import com.cloud.network.Site2SiteVpnGatewayVO; import com.cloud.network.Networks.TrafficType; import com.cloud.network.dao.FirewallRulesCidrsDao; import com.cloud.network.dao.IPAddressDao; @@ -69,6 +70,7 @@ import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDomainDao; import com.cloud.network.dao.NetworkRuleConfigDao; +import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.security.SecurityGroup; import com.cloud.network.security.SecurityGroupManager; import com.cloud.network.security.SecurityGroupVO; @@ -183,6 +185,7 @@ public class ApiDBUtils { private static UserVmDao _userVmDao; private static VlanDao _vlanDao; private static VolumeDao _volumeDao; + private static Site2SiteVpnGatewayDao _site2SiteVpnGatewayDao; private static VolumeHostDao _volumeHostDao; private static DataCenterDao _zoneDao; private static NetworkOfferingDao _networkOfferingDao; @@ -238,6 +241,7 @@ public class ApiDBUtils { _userVmDao = locator.getDao(UserVmDao.class); _vlanDao = locator.getDao(VlanDao.class); _volumeDao = locator.getDao(VolumeDao.class); + _site2SiteVpnGatewayDao = locator.getDao(Site2SiteVpnGatewayDao.class); _volumeHostDao = locator.getDao(VolumeHostDao.class); _zoneDao = locator.getDao(DataCenterDao.class); _securityGroupDao = locator.getDao(SecurityGroupDao.class); @@ -555,6 +559,10 @@ public class ApiDBUtils { return _volumeDao.findByIdIncludingRemoved(volumeId); } + public static Site2SiteVpnGatewayVO findVpnGatewayById(Long vpnGatewayId) { + return _site2SiteVpnGatewayDao.findById(vpnGatewayId); + } + public static List listUsersByAccount(long accountId) { return _userDao.listByAccount(accountId); } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 83288ae0a7d..d0c52e47600 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -146,6 +146,7 @@ import com.cloud.network.RemoteAccessVpn; import com.cloud.network.Site2SiteCustomerGateway; import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.Site2SiteVpnGateway; +import com.cloud.network.Site2SiteVpnGatewayVO; import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VpnUser; import com.cloud.network.router.VirtualRouter; @@ -3790,7 +3791,17 @@ public class ApiResponseHelper implements ResponseGenerator { public Site2SiteVpnConnectionResponse createSite2SiteVpnConnectionResponse(Site2SiteVpnConnection result) { Site2SiteVpnConnectionResponse response = new Site2SiteVpnConnectionResponse(); response.setId(result.getId()); - response.setVpnGatewayId(result.getVpnGatewayId()); + + response.setVpnGatewayId(result.getVpnGatewayId()); + Long vpnGatewayId = result.getVpnGatewayId(); + if(vpnGatewayId != null) { + Site2SiteVpnGatewayVO vpnGateway = ApiDBUtils.findVpnGatewayById(vpnGatewayId);//??? + + long ipId = vpnGateway.getAddrId(); + IPAddressVO ipObj = ApiDBUtils.findIpAddressById(ipId); + response.setIp(ipObj.getAddress().addr()); + } + response.setCustomerGatewayId(result.getCustomerGatewayId()); response.setCreated(result.getCreated()); response.setRemoved(result.getRemoved());