cloudbau/vagrant-openstack-plugin — pull request #81 by dme26 (2014-08-17 11:34:48+00:00)
Title: Add floating_ip_index option to allow :auto selection of non-1st floating IP

When using the Vagrant OpenStack provider without `--no-parallel` to create multiple servers each using `floating_ip = :auto` configuration, each parallel instance of the provider queries for available floating IPs independently, at about the same time. Thus in my use, the servers all decide to use the same floating IP, which fails for all but one server, and ends up hanging the other servers' creation.

This pull request adds a `floating_ip_index` option that defaults to 0, but otherwise allows selecting a non-0 index within the array of free floating IPs.

This fix works for my use, but developers who know more about Vagrant can likely determine a better and more general way to coordinate unique selections from a list of resources by parallel instances of a provider.

(BTW I think that there is likely a "stronger" means to acquire floating IPs: on multi-tenant OpenStack, the current method only finds free floating IPs recently used by this tenant, as opposed to from the larger pool. I'll follow up on this independently, though.)