public ArrayList<FloatingIP> listFloatingIp() throws RegionException, NeutronException { Optional<? extends FloatingIPApi> floatingIPApiExtension = neutronApi.getFloatingIPApi(getRegionOne()); if (floatingIPApiExtension.isPresent()) { FloatingIPApi floatingIPApi = floatingIPApiExtension.get(); return Lists.newArrayList(floatingIPApi.list().concat()); } else { throw new NeutronException("FloatingIp is not present"); } }
/** * Get all unassigned Floating IPs. To get all unassigned Floating IPs from a floating network use * {@link #getUnassignedFloatingIPsByNetworkUuid(String)} * * @return list of all the unassigned {@link FloatingIP} from all floating networks allocated to * this tenant */ private ArrayList<FloatingIP> getUnassignedFloatingIPs() { ArrayList<FloatingIP> availableFloatingIPs = Lists.newArrayList( Iterables.filter( floatingIPApi.list().concat().toList(), new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP arg0) { return arg0.getPortId() == null; } })); return availableFloatingIPs; }
/** * Get all unassigned Floating IPs from the given floating network. To get all unassigned Floating * IPs from all floating networks use {@link #getUnassignedFloatingIPs()} * * @param networkUuid the network uuid of the floating network * @return list of all unassigned {@link FloatingIP} from the given floating network */ private ArrayList<FloatingIP> getUnassignedFloatingIPsByNetworkUuid(final String networkUuid) { if (networkUuid == null || networkUuid.isEmpty()) { return null; } ArrayList<FloatingIP> availableFloatingIPs = Lists.newArrayList( Iterables.filter( floatingIPApi.list().concat().toList(), new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP arg0) { return arg0.getPortId() == null && arg0.getFloatingNetworkId() != null && arg0.getFloatingNetworkId().equals(networkUuid); } })); return availableFloatingIPs; }
/** * Get the {@link FloatingIP} by its Floating IP Address * * @param floatingIPAddress the Floating IP Address (a.k.a public IP address) * @return the {@link FloatingIP} if found, null otherwise */ private FloatingIP getFloatingIPByIPAddress(final String floatingIPAddress) { if (!isValidIP(floatingIPAddress)) { return null; } Iterable<FloatingIP> floatingIP = Iterables.filter( floatingIPApi.list().concat().toList(), new Predicate<FloatingIP>() { @Override public boolean apply(FloatingIP input) { return input.getFloatingIpAddress() != null && input.getFloatingIpAddress().equals(floatingIPAddress); } }); if (floatingIP.iterator().hasNext()) { return floatingIP.iterator().next(); } return null; }