@Override public ZoneAndId apply(ZoneAndId id) { FloatingIPApi floatingIpApi = novaApi.getFloatingIPExtensionForZone(id.getZone()).get(); for (FloatingIP ip : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", ip, id); floatingIpApi.removeFromServer(ip.getIp(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", ip); floatingIpApi.delete(ip.getId()); } floatingIpCache.invalidate(id); return id; }
@Override public ZoneAndId apply(ZoneAndId id) { FloatingIPApi floatingIpApi = novaApi.getFloatingIPExtensionForZone(id.getZone()).get(); for (FloatingIP ip : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", ip, id); floatingIpApi.removeFromServer(ip.getIp(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", ip); floatingIpApi.delete(ip.getId()); } floatingIpCache.invalidate(id); return id; }
@Override public ZoneAndId apply(ZoneAndId id) { FloatingIPApi floatingIpApi = novaApi.getFloatingIPExtensionForZone(id.getZone()).get(); for (FloatingIP ip : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", ip, id); floatingIpApi.removeFromServer(ip.getIp(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", ip); floatingIpApi.delete(ip.getId()); } floatingIpCache.invalidate(id); return id; }
@Override public RegionAndId apply(RegionAndId id) { FloatingIPApi floatingIpApi = novaApi.getFloatingIPApi(id.getRegion()).get(); for (FloatingIP ip : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", ip, id); floatingIpApi.removeFromServer(ip.getIp(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", ip); floatingIpApi.delete(ip.getId()); } floatingIpCache.invalidate(id); return id; }
@Override public RegionAndId apply(RegionAndId id) { if (isNeutronLinked()) { for (FloatingIpForServer floatingIpForServer : floatingIpCache.getUnchecked(id)) { logger.debug(">> deallocating floatingIp(%s)", floatingIpForServer); getFloatingIPApi(id.getRegion()).delete(floatingIpForServer.floatingIpId()); } } else { // try nova FloatingIPApi floatingIpApi = novaApi.getFloatingIPApi(id.getRegion()).get(); for (FloatingIpForServer floatingIpForServer : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", floatingIpForServer, id); floatingIpApi.removeFromServer(floatingIpForServer.ip(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", floatingIpForServer); floatingIpApi.delete(floatingIpForServer.floatingIpId()); } } floatingIpCache.invalidate(id); return id; }
@Override public RegionAndId apply(RegionAndId id) { if (isNeutronLinked()) { for (FloatingIpForServer floatingIpForServer : floatingIpCache.getUnchecked(id)) { logger.debug(">> deallocating floatingIp(%s)", floatingIpForServer); getFloatingIPApi(id.getRegion()).delete(floatingIpForServer.floatingIpId()); } } else { // try nova FloatingIPApi floatingIpApi = novaApi.getFloatingIPApi(id.getRegion()).get(); for (FloatingIpForServer floatingIpForServer : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", floatingIpForServer, id); floatingIpApi.removeFromServer(floatingIpForServer.ip(), id.getId()); logger.debug(">> deallocating floatingIp(%s)", floatingIpForServer); floatingIpApi.delete(floatingIpForServer.floatingIpId()); } } floatingIpCache.invalidate(id); return id; }
@Test public void testAllocateAndDecreateFloatingIPs() throws Exception { for (String zoneId : api.getConfiguredZones()) { Optional<? extends FloatingIPApi> apiOption = api.getFloatingIPExtensionForZone(zoneId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); FloatingIP floatingIP = api.create(); assertNotNull(floatingIP); Set<? extends FloatingIP> response = api.list().toSet(); boolean ipInSet = false; for (FloatingIP ip : response) { if (ip.getId().equals(floatingIP.getId())) ipInSet = true; } assertTrue(ipInSet); api.delete(floatingIP.getId()); response = api.list().toSet(); ipInSet = false; for (FloatingIP ip : response) { if (ip.getId().equals(floatingIP.getId())) { ipInSet = true; } } assertFalse(ipInSet); } }
@Test public void testAllocateAndDecreateFloatingIPs() throws Exception { for (String regionId : api.getConfiguredRegions()) { Optional<? extends FloatingIPApi> apiOption = api.getFloatingIPApi(regionId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); FloatingIP floatingIP = api.create(); assertNotNull(floatingIP); Set<? extends FloatingIP> response = api.list().toSet(); boolean ipInSet = false; for (FloatingIP ip : response) { if (ip.getId().equals(floatingIP.getId())) ipInSet = true; } assertTrue(ipInSet); api.delete(floatingIP.getId()); response = api.list().toSet(); ipInSet = false; for (FloatingIP ip : response) { if (ip.getId().equals(floatingIP.getId())) { ipInSet = true; } } assertFalse(ipInSet); } }