diff --git a/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java b/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java index 41508202cfd..44967b1d91b 100644 --- a/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java +++ b/api/src/com/cloud/api/response/Site2SiteVpnConnectionResponse.java @@ -26,6 +26,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"); @@ -44,6 +47,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 64c7fef6792..a6526f10878 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -58,6 +58,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; @@ -65,6 +66,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; @@ -177,6 +179,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; @@ -232,6 +235,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); @@ -549,6 +553,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 6477e536842..7b9e1eee183 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -142,6 +142,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; @@ -3643,7 +3644,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());