@Override public Iterable<? extends FloatingIP> load(final ZoneAndId key) throws Exception { String zone = key.getZone(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPExtensionForZone(zone); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }); } return ImmutableSet.of(); } }
@Override public Iterable<? extends FloatingIP> load(final ZoneAndId key) throws Exception { String zone = key.getZone(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPExtensionForZone(zone); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }); } return ImmutableSet.of(); } }
@Override public Iterable<? extends FloatingIP> load(final ZoneAndId key) throws Exception { String zone = key.getZone(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPExtensionForZone(zone); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }); } return ImmutableSet.of(); } }
@Override public Iterable<? extends FloatingIP> load(final RegionAndId key) throws Exception { String region = key.getRegion(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPApi(region); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }); } return ImmutableSet.of(); } }
@Override public Iterable<? extends FloatingIpForServer> load(final RegionAndId key) throws Exception { String region = key.getRegion(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPApi(region); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }) .transform(new Function<FloatingIP, FloatingIpForServer>() { @Override public FloatingIpForServer apply(FloatingIP input) { return FloatingIpForServer.create(key, input.getId(), input.getIp()); } }); } return ImmutableSet.of(); } }
@Override public Iterable<? extends FloatingIpForServer> load(final RegionAndId key) throws Exception { String region = key.getRegion(); Optional<? extends FloatingIPApi> ipApiOptional = api.getFloatingIPApi(region); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return key.getId().equals(input.getInstanceId()); } }) .transform(new Function<FloatingIP, FloatingIpForServer>() { @Override public FloatingIpForServer apply(FloatingIP input) { return FloatingIpForServer.create(key, input.getId(), input.getIp()); } }); } return ImmutableSet.of(); } }
@Test public void testReturnsNullWhenNotFound() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of())) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); assertFalse(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); }
@Test public void testReturnsNullWhenNotFound() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); expect(api.getFloatingIPApi("region")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of())) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); assertFalse(parser.load(RegionAndId.fromRegionAndId("region", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); }
@Test public void testReturnsNullWhenNotAssigned() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of(FloatingIP.builder().id("1").ip("1.1.1.1").build()))) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); assertFalse(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); }
@Test public void testReturnsPublicIpOnMatch() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); FloatingIP testIp = FloatingIP.builder().id("1").ip("1.1.1.1").fixedIp("10.1.1.1").instanceId("i-blah").build(); expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of(testIp))) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); assertEquals(ImmutableSet.copyOf(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah"))), ImmutableSet.of(testIp)); verify(api); verify(ipApi); }
@Test public void testReturnsNullWhenNotAssigned() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); expect(api.getFloatingIPApi("region")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of(FloatingIP.builder().id("1").ip("1.1.1.1").build()))) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); assertFalse(parser.load(RegionAndId.fromRegionAndId("region", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); }
logger.trace("<< [%s] allocating a new floating ip for node(%s)", e.getMessage(), node.getId()); logger.trace(">> searching for existing, unassigned floating ip for node(%s)", node.getId()); ArrayList<FloatingIP> unassignedIps = Lists.newArrayList(Iterables.filter(floatingIpApi.list(), new Predicate<FloatingIP>() {
logger.trace("<< [%s] allocating a new floating ip for node(%s)", e.getMessage(), node.getId()); logger.trace(">> searching for existing, unassigned floating ip for node(%s)", node.getId()); ArrayList<FloatingIP> unassignedIps = Lists.newArrayList(Iterables.filter(floatingIpApi.list(), new Predicate<FloatingIP>() {
@Test public void testReturnsPublicIpOnMatch() throws Exception { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); FloatingIP testIp = FloatingIP.builder().id("1").ip("1.1.1.1").fixedIp("10.1.1.1").instanceId("i-blah").build(); expect(api.getFloatingIPApi("RegionOne")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet.<FloatingIP> of(testIp))) .atLeastOnce(); replay(api); replay(ipApi); LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); FloatingIpForServer floatingIpForServer = FloatingIpForServer.create(RegionAndId.fromRegionAndId("RegionOne", "i-blah"), "1", "1.1.1.1"); assertEquals(ImmutableSet.copyOf(parser.load(RegionAndId.fromRegionAndId("RegionOne", "i-blah"))), ImmutableSet.of(floatingIpForServer)); verify(api); verify(ipApi); }
@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 testListFloatingIPs() throws Exception { for (String zoneId : api.getConfiguredZones()) { Optional<? extends FloatingIPApi> apiOption = api.getFloatingIPExtensionForZone(zoneId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); Set<? extends FloatingIP> response = api.list().toSet(); assert null != response; assertTrue(response.size() >= 0); for (FloatingIP ip : response) { FloatingIP newDetails = api.get(ip.getId()); assertEquals(newDetails.getId(), ip.getId()); assertEquals(newDetails.getIp(), ip.getIp()); assertEquals(newDetails.getFixedIp(), ip.getFixedIp()); assertEquals(newDetails.getInstanceId(), ip.getInstanceId()); } } }
@Test public void testListFloatingIPs() throws Exception { for (String regionId : api.getConfiguredRegions()) { Optional<? extends FloatingIPApi> apiOption = api.getFloatingIPApi(regionId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); Set<? extends FloatingIP> response = api.list().toSet(); assert null != response; assertTrue(response.size() > 0); for (FloatingIP ip : response) { FloatingIP newDetails = api.get(ip.getId()); assertEquals(newDetails.getId(), ip.getId()); assertEquals(newDetails.getIp(), ip.getIp()); assertEquals(newDetails.getFixedIp(), ip.getFixedIp()); assertEquals(newDetails.getInstanceId(), ip.getInstanceId()); assertEquals(newDetails.getPool(), ip.getPool()); } } }
public void testListFloatingIPsWhenResponseIs404() throws Exception { HttpRequest list = HttpRequest .builder() .method("GET") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-floating-ips") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(); HttpResponse listResponse = HttpResponse.builder().statusCode(404).build(); NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); assertTrue(apiWhenNoServersExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().list().isEmpty()); }
public void testListFloatingIPsWhenResponseIs2xx() throws Exception { HttpRequest list = HttpRequest .builder() .method("GET") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-floating-ips") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(); HttpResponse listResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/floatingip_list.json")).build(); NovaApi apiWhenFloatingIPsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); assertEquals(apiWhenFloatingIPsExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); assertEquals(apiWhenFloatingIPsExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().list() .toString(), new ParseFloatingIPListTest().expected().toString()); }
public void testListFloatingIPsWhenResponseIs2xx() throws Exception { HttpRequest list = HttpRequest .builder() .method("GET") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-floating-ips") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(); HttpResponse listResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/floatingip_list.json")).build(); NovaApi apiWhenFloatingIPsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); assertEquals(apiWhenFloatingIPsExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); assertEquals(apiWhenFloatingIPsExist.getFloatingIPApi("az-1.region-a.geo-1").get().list() .toString(), new ParseFloatingIPListTest().expected().toString()); }