> @@ -94,6 +97,12 @@ public boolean apply(FloatingIP arg0) {
>           // try to prevent multiple parallel launches from choosing the same 
> ip.
>           Collections.shuffle(unassignedIps);
>           ip = Iterables.getLast(unassignedIps);
> +         
> +         //if we are still unable to allocate IP, even after iterating 
> through all 
> +         //available, then re-throw IRE as there is nothing left we can do
> +         if(ip == null){
> +         throw new InsufficientResourcesException("Failed to allocate a 
> FloatingIP for node(" + node.getId() + ")",e);
> +         }
>        }
>        logger.debug(">> adding floatingIp(%s) to node(%s)", ip.getIp(), 
> node.getId());

Do we know if 'FloatingIPApi.create()' throws an 
'InsufficientResourcesException' or will always return null upon unsuccessful 
allocation? I've no idea how to go about tracking the impl down which is why I 
ask. If the later we can do away with the try/catch block altogether and only 
throw the IRE should all attempts to allocate an IP fail. Thoughts?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/425/files#r14412381

Reply via email to