This is an automated email from the ASF dual-hosted git repository.

nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 1bf6862  Persist vpn connection state before restarting (#4635)
1bf6862 is described below

commit 1bf686269fc426191419c826dbacba4e69bc17ef
Author: Rakesh <[email protected]>
AuthorDate: Thu Sep 16 05:44:01 2021 +0200

    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
---
 .../java/com/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 461eb49..8b20072 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;

Reply via email to