From 433e93022b95c5c40f653c33653d871cde5d177f Mon Sep 17 00:00:00 2001 From: davidjumani Date: Tue, 17 Aug 2021 16:15:44 +0530 Subject: [PATCH 1/3] s2svpn: Set initial state as Connecting --- .../main/java/com/cloud/network/Site2SiteVpnConnection.java | 2 +- .../network/router/VirtualNetworkApplianceManagerImpl.java | 4 ++-- .../java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/com/cloud/network/Site2SiteVpnConnection.java b/api/src/main/java/com/cloud/network/Site2SiteVpnConnection.java index cfc439abcd8f..994df875f7d3 100644 --- a/api/src/main/java/com/cloud/network/Site2SiteVpnConnection.java +++ b/api/src/main/java/com/cloud/network/Site2SiteVpnConnection.java @@ -24,7 +24,7 @@ public interface Site2SiteVpnConnection extends ControlledEntity, InternalIdentity, Displayable { enum State { - Pending, Connected, Disconnected, Error, + Pending, Connecting, Connected, Disconnected, Error, } @Override diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 28855db83407..00c1a3da76d7 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -817,7 +817,7 @@ protected void updateSite2SiteVpnConnectionState(final List rout } final List ipList = new ArrayList(); for (final Site2SiteVpnConnectionVO conn : conns) { - if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected) { + if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected && conn.getState() != Site2SiteVpnConnection.State.Connecting) { continue; } final Site2SiteCustomerGateway gw = _s2sCustomerGatewayDao.findById(conn.getCustomerGatewayId()); @@ -853,7 +853,7 @@ protected void updateSite2SiteVpnConnectionState(final List rout throw new CloudRuntimeException("Unable to acquire lock for site to site vpn connection id " + conn.getId()); } try { - if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected) { + if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected && conn.getState() != Site2SiteVpnConnection.State.Connecting) { continue; } final Site2SiteVpnConnection.State oldState = conn.getState(); 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 63fcacc6ccd2..cf9c671f9d67 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -347,7 +347,7 @@ public Site2SiteVpnConnection startVpnConnection(long id) throws ResourceUnavail if (conn.isPassive()) { conn.setState(State.Disconnected); } else { - conn.setState(State.Connected); + conn.setState(State.Connecting); } _vpnConnectionDao.persist(conn); return conn; From f6c6687bd0fa3ccbea6ddcce8e9e205736870ef5 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Tue, 17 Aug 2021 16:19:40 +0530 Subject: [PATCH 2/3] Fix comments --- test/integration/smoke/test_vpc_vpn.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/smoke/test_vpc_vpn.py b/test/integration/smoke/test_vpc_vpn.py index 26b1daf946f0..485aec643ca7 100644 --- a/test/integration/smoke/test_vpc_vpn.py +++ b/test/integration/smoke/test_vpc_vpn.py @@ -618,7 +618,7 @@ def test_01_vpc_site2site_vpn(self): self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) vm1 = None - # Deploy a vm in network 2 + # Deploy a vm in network 1 try: vm1 = VirtualMachine.create(self.apiclient, services=self.services["virtual_machine"], templateid=self.template.id, @@ -990,7 +990,7 @@ def test_01_redundant_vpc_site2site_vpn(self): self.cleanup.append(ntwk2) self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) - # Deploy a vm in network 2 + # Deploy a vm in network 1 vm1 = None try: vm1 = VirtualMachine.create(self.apiclient, services=self.services["virtual_machine"], @@ -1370,7 +1370,7 @@ def test_01_vpc_site2site_vpn_multiple_options(self): self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) vm1 = None - # Deploy a vm in network 2 + # Deploy a vm in network 1 try: vm1 = VirtualMachine.create(self.apiclient, services=self.services["virtual_machine"], templateid=self.template.id, From 0d4e8d6f81f667e14e6192cea0345fa77ea02117 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Tue, 17 Aug 2021 16:42:23 +0530 Subject: [PATCH 3/3] Adding connecting elsewhere --- .../network/router/VirtualNetworkApplianceManagerImpl.java | 3 ++- .../com/cloud/network/vpn/Site2SiteVpnManagerImpl.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 00c1a3da76d7..28fff8ea7a92 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -817,7 +817,8 @@ protected void updateSite2SiteVpnConnectionState(final List rout } final List ipList = new ArrayList(); for (final Site2SiteVpnConnectionVO conn : conns) { - if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected && conn.getState() != Site2SiteVpnConnection.State.Connecting) { + if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected + && conn.getState() != Site2SiteVpnConnection.State.Connecting) { continue; } final Site2SiteCustomerGateway gw = _s2sCustomerGatewayDao.findById(conn.getCustomerGatewayId()); 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 cf9c671f9d67..5b444c292a67 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -530,7 +530,7 @@ private void setupVpnConnection(Account caller, Long vpnCustomerGwIp) { continue; } try { - if (conn.getState() == State.Connected || conn.getState() == State.Error) { + if (conn.getState() == State.Connected || conn.getState() == State.Connecting || conn.getState() == State.Error) { stopVpnConnection(conn.getId()); } startVpnConnection(conn.getId()); @@ -608,7 +608,8 @@ public Site2SiteVpnConnection resetVpnConnection(ResetVpnConnectionCmd cmd) thro if (conn.getState() == State.Pending) { conn.setState(State.Disconnected); } - if (conn.getState() == State.Connected || conn.getState() == State.Error || conn.getState() == State.Disconnected) { + if (conn.getState() == State.Connected || conn.getState() == State.Error + || conn.getState() == State.Disconnected || conn.getState() == State.Connecting) { stopVpnConnection(id); } startVpnConnection(id); @@ -795,7 +796,7 @@ public void markDisconnectVpnConnByVpc(long vpcId) { throw new CloudRuntimeException("Unable to acquire lock on " + conn); } try { - if (conn.getState() == Site2SiteVpnConnection.State.Connected) { + if (conn.getState() == Site2SiteVpnConnection.State.Connected || conn.getState() == Site2SiteVpnConnection.State.Connecting) { conn.setState(Site2SiteVpnConnection.State.Disconnected); _vpnConnectionDao.persist(conn); }