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);