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
This commit is contained in:
parent
9f5bea6204
commit
2715fd4dd9
|
|
@ -61,6 +61,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);
|
||||
|
|
|
|||
|
|
@ -529,6 +529,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();
|
||||
|
|
|
|||
|
|
@ -2467,7 +2467,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;
|
||||
|
|
@ -3434,7 +3443,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||
|
||||
protected boolean sendCommandsToRouter(final VirtualRouter router, Commands cmds) throws AgentUnavailableException {
|
||||
if(!checkRouterVersion(router)){
|
||||
throw new CloudRuntimeException("Router requires upgrade. Unable to send command to router:" + router.getId());
|
||||
//throw new CloudRuntimeException("Router requires upgrade. Unable to send command to router:" + router.getId());
|
||||
}
|
||||
Answer[] answers = null;
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -93,6 +93,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