mirror of https://github.com/apache/cloudstack.git
VPC: CS-15681 - execute VPC related methods only when router is a vpc router
Conflicts: server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
This commit is contained in:
parent
12ee8810f6
commit
119e4e7443
|
|
@ -43,7 +43,7 @@ public interface VpcVirtualNetworkApplianceService {
|
|||
* @throws ConcurrentOperationException
|
||||
* @throws ResourceUnavailableException
|
||||
*/
|
||||
boolean removeRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant)
|
||||
boolean removeVpcRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant)
|
||||
throws ConcurrentOperationException, ResourceUnavailableException;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
|
|||
continue;
|
||||
}
|
||||
//2) Call unplugNics in the network service
|
||||
success = success && _vpcRouterMgr.removeRouterFromGuestNetwork(router, network, false);
|
||||
success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, network, false);
|
||||
if (!success) {
|
||||
s_logger.warn("Failed to unplug nic in network " + network + " for virtual router " + router);
|
||||
} else {
|
||||
|
|
@ -267,7 +267,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
|
|||
continue;
|
||||
}
|
||||
//2) Call unplugNics in the network service
|
||||
success = success && _vpcRouterMgr.removeRouterFromGuestNetwork(router, config, false);
|
||||
success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, config, false);
|
||||
if (!success) {
|
||||
s_logger.warn("Failed to unplug nic in network " + config + " for virtual router " + router);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -76,8 +76,6 @@ import com.cloud.network.PhysicalNetworkServiceProvider;
|
|||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.Site2SiteCustomerGatewayVO;
|
||||
import com.cloud.network.Site2SiteVpnConnection;
|
||||
import com.cloud.network.Site2SiteVpnConnectionVO;
|
||||
import com.cloud.network.Site2SiteVpnGateway;
|
||||
import com.cloud.network.Site2SiteVpnGatewayVO;
|
||||
import com.cloud.network.VirtualRouterProvider;
|
||||
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
|
||||
|
|
@ -260,7 +258,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||
} finally {
|
||||
if (!result) {
|
||||
s_logger.debug("Removing the router " + router + " from network " + network + " as a part of cleanup");
|
||||
if (removeRouterFromGuestNetwork(router, network, isRedundant)) {
|
||||
if (removeVpcRouterFromGuestNetwork(router, network, isRedundant)) {
|
||||
s_logger.debug("Removed the router " + router + " from network " + network + " as a part of cleanup");
|
||||
} else {
|
||||
s_logger.warn("Failed to remove the router " + router + " from network " + network + " as a part of cleanup");
|
||||
|
|
@ -274,7 +272,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean removeRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant)
|
||||
public boolean removeVpcRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant)
|
||||
throws ConcurrentOperationException, ResourceUnavailableException {
|
||||
if (network.getTrafficType() != TrafficType.Guest) {
|
||||
s_logger.warn("Network " + network + " is not of type " + TrafficType.Guest);
|
||||
|
|
@ -542,6 +540,10 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||
//only one router is supported in VPC now
|
||||
VirtualRouter router = routers.get(0);
|
||||
|
||||
if (router.getVpcId() == null) {
|
||||
return super.associatePublicIP(network, ipAddress, routers);
|
||||
}
|
||||
|
||||
Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = getNicsToChangeOnRouter(ipAddress, router);
|
||||
Map<String, PublicIpAddress> nicsToPlug = nicsToChange.first();
|
||||
Map<String, PublicIpAddress> nicsToUnplug = nicsToChange.second();
|
||||
|
|
@ -850,12 +852,14 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||
|
||||
super.finalizeNetworkRulesForNetwork(cmds, router, provider, guestNetworkId);
|
||||
|
||||
if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.NetworkACL, Provider.VPCVirtualRouter)) {
|
||||
List<? extends FirewallRule> networkACLs = _networkACLMgr.listNetworkACLs(guestNetworkId);
|
||||
s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + router
|
||||
+ " start for guest network id=" + guestNetworkId);
|
||||
if (!networkACLs.isEmpty()) {
|
||||
createNetworkACLsCommands(networkACLs, router, cmds, guestNetworkId);
|
||||
if (router.getVpcId() == null) {
|
||||
if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.NetworkACL, Provider.VPCVirtualRouter)) {
|
||||
List<? extends FirewallRule> networkACLs = _networkACLMgr.listNetworkACLs(guestNetworkId);
|
||||
s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + router
|
||||
+ " start for guest network id=" + guestNetworkId);
|
||||
if (!networkACLs.isEmpty()) {
|
||||
createNetworkACLsCommands(networkACLs, router, cmds, guestNetworkId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -962,6 +966,11 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||
protected void finalizeIpAssocForNetwork(Commands cmds, VirtualRouter router, Provider provider,
|
||||
Long guestNetworkId) {
|
||||
|
||||
if (router.getVpcId() == null) {
|
||||
super.finalizeIpAssocForNetwork(cmds, router, provider, guestNetworkId);
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<? extends PublicIpAddress> publicIps = getPublicIpsToApply(router, provider, guestNetworkId, IpAddress.State.Releasing);
|
||||
|
||||
if (publicIps != null && !publicIps.isEmpty()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue