From 14241ce23301cd9ef9deadfb785f70b2a4f937fb Mon Sep 17 00:00:00 2001 From: Murali Reddy Date: Tue, 31 Dec 2013 11:02:54 +0530 Subject: [PATCH] CLOUDSTACK-5667: Shared Network - fails to launch router due to " Multiple generic soure NAT IPs provided for network" 'getExistingSourceNatInNetwork' method was retruning source nat ip for a particular account, resulting in multiple source nat ip's to be assigned to a shared network on network implemen. Fix ensures that account id is not considered for shared network implement. --- server/src/com/cloud/network/IpAddressManagerImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/network/IpAddressManagerImpl.java b/server/src/com/cloud/network/IpAddressManagerImpl.java index 26cf15a5bd4..0058c6e0832 100644 --- a/server/src/com/cloud/network/IpAddressManagerImpl.java +++ b/server/src/com/cloud/network/IpAddressManagerImpl.java @@ -1105,8 +1105,14 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage } protected IPAddressVO getExistingSourceNatInNetwork(long ownerId, Long networkId) { - - List addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, networkId, true); + List addrs; + Network guestNetwork = _networksDao.findById(networkId); + if (guestNetwork.getGuestType() == GuestType.Shared) { + // ignore the account id for the shared network + addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(networkId, true); + } else { + addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, networkId, true); + } IPAddressVO sourceNatIp = null; if (addrs.isEmpty()) {