mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-5403: Shared network - None of PF, LB rules work after router
restart, firewall rules dropped from iptables post restart on VR restart, not all public IP's associated with the network are sent with IpAssocCmd to VR. This fix will ensure all the ip's associated with the network irrespective of the account are sent as part of IpAssocCommand Conflicts: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
This commit is contained in:
parent
4fe63f7de8
commit
8b151c98c2
|
|
@ -60,6 +60,8 @@ public interface NetworkModel {
|
|||
*/
|
||||
List<? extends IpAddress> listPublicIpsAssignedToGuestNtwk(long accountId, long associatedNetworkId, Boolean sourceNat);
|
||||
|
||||
List<? extends IpAddress> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat);
|
||||
|
||||
List<? extends NetworkOffering> getSystemAccountNetworkOfferings(String... offeringNames);
|
||||
|
||||
List<? extends Nic> getNics(long vmId);
|
||||
|
|
|
|||
|
|
@ -523,6 +523,19 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||
return _ipAddressDao.search(sc, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
|
||||
SearchCriteria<IPAddressVO> sc = IpAddressSearch.create();
|
||||
sc.setParameters("associatedWithNetworkId", associatedNetworkId);
|
||||
|
||||
if (sourceNat != null) {
|
||||
sc.addAnd("sourceNat", SearchCriteria.Op.EQ, sourceNat);
|
||||
}
|
||||
sc.setJoinParameters("virtualNetworkVlanSB", "vlanType", VlanType.VirtualNetwork);
|
||||
|
||||
return _ipAddressDao.search(sc, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IPAddressVO> listPublicIpsAssignedToAccount(long accountId, long dcId, Boolean sourceNat) {
|
||||
SearchCriteria<IPAddressVO> sc = IpAddressSearch.create();
|
||||
|
|
|
|||
|
|
@ -2571,7 +2571,16 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||
protected ArrayList<? extends PublicIpAddress> getPublicIpsToApply(VirtualRouter router, Provider provider, Long guestNetworkId,
|
||||
com.cloud.network.IpAddress.State... skipInStates) {
|
||||
long ownerId = router.getAccountId();
|
||||
final List<? extends IpAddress> userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
|
||||
final List<? extends IpAddress> userIps;
|
||||
|
||||
Network guestNetwork = _networkDao.findById(guestNetworkId);
|
||||
if (guestNetwork.getGuestType() == GuestType.Shared) {
|
||||
// ignore the account id for the shared network
|
||||
userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(guestNetworkId, null);
|
||||
} else {
|
||||
userIps = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, guestNetworkId, null);
|
||||
}
|
||||
|
||||
List<PublicIp> allPublicIps = new ArrayList<PublicIp>();
|
||||
if (userIps != null && !userIps.isEmpty()) {
|
||||
boolean addIp = true;
|
||||
|
|
|
|||
|
|
@ -92,6 +92,15 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.cloud.network.NetworkModel#listPublicIpsAssignedToGuestNtwk(long, long, java.lang.Boolean)
|
||||
*/
|
||||
@Override
|
||||
public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.cloud.network.NetworkModel#getSystemAccountNetworkOfferings(java.lang.String[])
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -103,6 +103,16 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.cloud.network.NetworkModel#listPublicIpsAssignedToGuestNtwk(long, long, java.lang.Boolean)
|
||||
*/
|
||||
@Override
|
||||
public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long associatedNetworkId, Boolean sourceNat) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.cloud.network.NetworkModel#getSystemAccountNetworkOfferings(java.lang.String[])
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue