From 88d51ce35306bbf852bc50258d672a74a1ba2b22 Mon Sep 17 00:00:00 2001 From: Spaceman1984 <49917670+Spaceman1984@users.noreply.github.com> Date: Wed, 17 Jun 2020 03:42:04 +0200 Subject: [PATCH] server: Restarting all networks that needs a restart in a VPC (#4007) When a VPC is restarted, the networks in the VPC is not restarted, this PR will add the logic to restart the networks in the VPC that needs a restart when the VPC is restarted. Fixes #3816 --- .../java/com/cloud/network/vpc/VpcManagerImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index b1b1059c123..620e5510dda 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -1747,6 +1747,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis return true; } + restartVPCNetworks(vpcId, callerAccount, callerUser, cleanUp); + s_logger.debug("Starting VPC " + vpc + " as a part of VPC restart process without cleanup"); if (!startVpc(vpcId, false)) { s_logger.warn("Failed to start vpc as a part of VPC " + vpc + " restart process"); @@ -1763,6 +1765,15 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis } } + private void restartVPCNetworks(long vpcId, Account callerAccount, User callerUser, boolean cleanUp) throws InsufficientCapacityException, ResourceUnavailableException { + List networks = _ntwkModel.listNetworksByVpc(vpcId); + for (Network network: networks) { + if (network.isRestartRequired()) { + _ntwkMgr.restartNetwork(network.getId(), callerAccount, callerUser, cleanUp); + } + } + } + @Override public List getVpcPrivateGateways(final long vpcId) { final List gateways = _vpcGatewayDao.listByVpcIdAndType(vpcId, VpcGateway.Type.Private);