public Site2SiteVpnConnectionVO(long accountId, long domainId, long vpnGatewayId, long customerGatewayId, boolean passive) { uuid = UUID.randomUUID().toString(); setVpnGatewayId(vpnGatewayId); setCustomerGatewayId(customerGatewayId); setState(State.Pending); this.accountId = accountId; this.domainId = domainId; this.passive = passive; }
conn.setState(State.Pending); _vpnConnectionDao.persist(conn); conn.setState(State.Disconnected); } else { conn.setState(State.Connected); conn.setState(State.Error); _vpnConnectionDao.persist(conn); throw new ResourceUnavailableException("Failed to apply site-to-site VPN", Site2SiteVpnConnection.class, id);
@DB private void stopVpnConnection(Long id) throws ResourceUnavailableException { Site2SiteVpnConnectionVO conn = _vpnConnectionDao.acquireInLockTable(id); if (conn == null) { throw new CloudRuntimeException("Unable to acquire lock on " + conn); } try { if (conn.getState() == State.Pending) { throw new InvalidParameterValueException("Site to site VPN connection with specified id is currently Pending, unable to Disconnect!"); } conn.setState(State.Disconnected); _vpnConnectionDao.persist(conn); boolean result = true; for (Site2SiteVpnServiceProvider element : _s2sProviders) { result = result & element.stopSite2SiteVpn(conn); } if (!result) { conn.setState(State.Error); _vpnConnectionDao.persist(conn); throw new ResourceUnavailableException("Failed to apply site-to-site VPN", Site2SiteVpnConnection.class, id); } } finally { _vpnConnectionDao.releaseFromLockTable(conn.getId()); } }
@Override @DB public void markDisconnectVpnConnByVpc(long vpcId) { List<Site2SiteVpnConnectionVO> conns = _vpnConnectionDao.listByVpcId(vpcId); for (Site2SiteVpnConnectionVO conn : conns) { if (conn == null) { continue; } Site2SiteVpnConnectionVO lock = _vpnConnectionDao.acquireInLockTable(conn.getId()); if (lock == null) { throw new CloudRuntimeException("Unable to acquire lock on " + conn); } try { if (conn.getState() == Site2SiteVpnConnection.State.Connected) { conn.setState(Site2SiteVpnConnection.State.Disconnected); _vpnConnectionDao.persist(conn); } } finally { _vpnConnectionDao.releaseFromLockTable(lock.getId()); } } }
for (final Site2SiteVpnConnectionVO conn : conns) { if (conn.getState() != Site2SiteVpnConnection.State.Error) { conn.setState(Site2SiteVpnConnection.State.Disconnected); _s2sVpnConnectionDao.persist(conn); conn.setState(Site2SiteVpnConnection.State.Connected); } else { conn.setState(Site2SiteVpnConnection.State.Disconnected);
conn.setState(State.Pending); if (cmd.getDisplay() != null) { conn.setDisplay(cmd.getDisplay());