Handling of asynchronous floating IP assignment #324
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
When vagrant is run with an openstack-compatible backend which assigns
floating IPs asynchronously, it fails with "Vagrant was unable to resolve
a valid ip to ssh on your OpenStack instance".
This happens because vagrant-openstack-provider tries to get the assigned
IP of the virtual machine immediately after sending the floating IP
assignment command.
This issue was found when using vagrant with synnefo
as the backend.
With this patch, vagrant will wait until the floating IP is assigned before
continuing.
Notes
It should be noted that many implementations do not assume that the IP is immediately assigned, but wait/poll until it appears on the server information.
These include what Ansible and the official Shade library do.
Here is a chain of calls that Ansible does:
Also, this patch will probably solve other issues, such as issue 278