From 1bf686269fc426191419c826dbacba4e69bc17ef Mon Sep 17 00:00:00 2001 From: Rakesh Date: Thu, 16 Sep 2021 05:44:01 +0200 Subject: [PATCH] Persist vpn connection state before restarting (#4635) If the vpn connection is in pending state then we cant restart the vpn connection. So manually set the state to disconnected and then try to restart the vpn connection --- .../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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;