diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index 461eb49eee4..8b20072cf37 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -610,13 +610,12 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn } _accountMgr.checkAccess(caller, null, false, conn); - if (conn.getState() == State.Pending) { - conn.setState(State.Disconnected); - } - if (conn.getState() == State.Connected || conn.getState() == State.Error - || conn.getState() == State.Disconnected || conn.getState() == State.Connecting) { - stopVpnConnection(id); - } + // Set vpn state to disconnected + conn.setState(State.Disconnected); + _vpnConnectionDao.persist(conn); + + // Stop and start the connection again + stopVpnConnection(id); startVpnConnection(id); conn = _vpnConnectionDao.findById(id); return conn;