diff --git a/core/src/com/cloud/agent/api/CheckS2SVpnConnectionsAnswer.java b/core/src/com/cloud/agent/api/CheckS2SVpnConnectionsAnswer.java index 50dfaf202f9..b299c602dde 100644 --- a/core/src/com/cloud/agent/api/CheckS2SVpnConnectionsAnswer.java +++ b/core/src/com/cloud/agent/api/CheckS2SVpnConnectionsAnswer.java @@ -76,4 +76,14 @@ public class CheckS2SVpnConnectionsAnswer extends Answer { } return null; } + + public boolean isIPPresent(String ip) { + if (this.getResult()) { + Boolean status = ipToConnected.get(ip); + if (status != null) { + return true; + } + } + return false; + } } diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 97f3d9483d9..ae8c26ad07c 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -899,18 +899,22 @@ Configurable, StateListener routers = new ArrayList(); + routers.add(router); + + Site2SiteVpnConnectionVO conn = new Site2SiteVpnConnectionVO(1L, 1L, 1L, 1L, false); + Site2SiteVpnConnectionVO conn1 = new Site2SiteVpnConnectionVO(1L, 1L, 1L, 1L, false); + conn.setState(Site2SiteVpnConnection.State.Disconnected); + conn1.setState(Site2SiteVpnConnection.State.Disconnected); + List conns = new ArrayList(); + conns.add(conn); + conns.add(conn1); + + Site2SiteCustomerGatewayVO gw = new Site2SiteCustomerGatewayVO("Testing gateway", 1L, 1L, "192.168.50.15", "Guest List", "ipsecPsk", "ikePolicy", "espPolicy", 1L, 1L, true, true); + HostVO hostVo = new HostVO(1L, "Testing host", Host.Type.Routing, "192.168.50.15", "privateNetmask", "privateMacAddress", "publicIpAddress", "publicNetmask", "publicMacAddress", "storageIpAddress", "storageNetmask", "storageMacAddress", "deuxStorageIpAddress", "duxStorageNetmask", "deuxStorageMacAddress", "guid", Status.Up, "version", "iqn", new Date() , 1L, 1L, 1L, 1L, "parent", 20L, Storage.StoragePoolType.Gluster); + hostVo.setManagementServerId(ManagementServerNode.getManagementServerId()); + + ArrayList ipList = new ArrayList<>(); + ipList.add("192.168.50.15"); + + _s2sConnCommand = new CheckS2SVpnConnectionsCommand(ipList); + + when(_s2sVpnMgr.getConnectionsForRouter(router)).thenReturn(conns); + when(_s2sVpnConnectionDao.persist(conn)).thenReturn(null); + when(_s2sCustomerGatewayDao.findById(conn.getCustomerGatewayId())).thenReturn(gw); + when(_hostDao.findById(router.getHostId())).thenReturn(hostVo); + when(_routerControlHelper.getRouterControlIp(router.getId())).thenReturn("192.168.50.15"); + doReturn(_s2sVpnAnswer).when(_agentMgr).easySend(anyLong(), any(CheckS2SVpnConnectionsCommand.class)); + when(_s2sVpnAnswer.getResult()).thenReturn(true); + when(_s2sVpnConnectionDao.acquireInLockTable(conn.getId())).thenReturn(conn); + when(_s2sVpnAnswer.isIPPresent("192.168.50.15")).thenReturn(true); + when(_s2sVpnAnswer.isConnected("192.168.50.15")).thenReturn(true); + doNothing().when(_alertMgr).sendAlert(any(AlertManager.AlertType.class), anyLong(), anyLong(), anyString(), anyString()); + + virtualNetworkApplianceManagerImpl.updateSite2SiteVpnConnectionState(routers); + + for(Site2SiteVpnConnection connection : conns){ + assertEquals(Site2SiteVpnConnection.State.Connected, connection.getState()); + } + } + + + }