diff --git a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java index 18f4a45994e5..a549adbc6b3e 100644 --- a/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java @@ -154,6 +154,8 @@ public class NetworkHelperImpl implements NetworkHelper { protected IpAddressManager _ipAddrMgr; @Inject ConfigurationDao _configDao; + @Inject + VpcVirtualNetworkApplianceManager _vpcRouterMgr; protected final Map> hypervisorsMap = new HashMap<>(); @@ -288,7 +290,7 @@ protected DomainRouterVO start(DomainRouterVO router, final User user, final Acc // only after router start successfully final Long vpcId = router.getVpcId(); if (vpcId != null) { - _s2sVpnMgr.reconnectDisconnectedVpnByVpc(vpcId); + _vpcRouterMgr.startSite2SiteVpn(_routerDao.findById(router.getId())); } return _routerDao.findById(router.getId()); } diff --git a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java index c6181e9851ae..8c661c798a4c 100644 --- a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java +++ b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java @@ -74,4 +74,11 @@ public interface VpcVirtualNetworkApplianceManager extends VirtualNetworkApplian * @throws ResourceUnavailableException */ boolean stopRemoteAccessVpn(RemoteAccessVpn vpn, VirtualRouter router) throws ResourceUnavailableException; -} \ No newline at end of file + + /** + * @param router + * @return + * @throws ResourceUnavailableException + */ + boolean startSite2SiteVpn(DomainRouterVO router) throws ResourceUnavailableException; +} diff --git a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 4b6da55b2382..e9d32a2152b1 100644 --- a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -66,6 +66,7 @@ import com.cloud.network.dao.MonitoringServiceVO; import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.RemoteAccessVpnVO; +import com.cloud.network.dao.Site2SiteVpnConnectionVO; import com.cloud.network.vpc.NetworkACLItemDao; import com.cloud.network.vpc.NetworkACLItemVO; import com.cloud.network.vpc.NetworkACLManager; @@ -656,6 +657,17 @@ public boolean startSite2SiteVpn(final Site2SiteVpnConnection conn, final Virtua return applySite2SiteVpn(true, router, conn); } + @Override + public boolean startSite2SiteVpn(DomainRouterVO router) throws ResourceUnavailableException { + boolean result = true; + List conns = _s2sVpnMgr.getConnectionsForRouter(router); + for (Site2SiteVpnConnectionVO conn : conns) { + result = result && startSite2SiteVpn(conn, router); + } + + return result; + } + @Override public boolean stopSite2SiteVpn(final Site2SiteVpnConnection conn, final VirtualRouter router) throws ResourceUnavailableException { if (router.getState() != State.Running) { diff --git a/server/src/test/java/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java b/server/src/test/java/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java index d1b951a92015..45bf4c1763b5 100644 --- a/server/src/test/java/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java +++ b/server/src/test/java/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java @@ -274,4 +274,10 @@ public boolean stopRemoteAccessVpn(final RemoteAccessVpn vpn, final VirtualRoute // TODO Auto-generated method stub return false; } + + @Override + public boolean startSite2SiteVpn(DomainRouterVO router) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } } \ No newline at end of file