providers/docker: verify host VM SSH is ready [GH-3838]

This commit is contained in:
Mitchell Hashimoto 2014-05-20 20:41:48 -07:00
parent 683cda82e4
commit 6c5251f499
4 changed files with 22 additions and 0 deletions

View File

@ -33,6 +33,7 @@ BUG FIXES:
- providers/docker: Don't port map SSH port if container doesn't
support SSH. [GH-3857]
- providers/docker: Proper SSH info if using native driver. [GH-3799]
- providers/docker: Verify host VM has SSH ready. [GH-3838]
- providers/virtualbox: On Windows, check `VBOX_MSI_INSTALL_PATH`
for VBoxManage path as well. [GH-3852]
- provisioners/puppet: Fix setting facter vars with Windows

View File

@ -54,6 +54,12 @@ module VagrantPlugins
host_machine.with_ui(proxy_ui) do
host_machine.action(:up)
end
# Verify communication is ready. If not, we have a problem.
if !host_machine.communicate.ready?
raise Errors::HostVMCommunicatorNotReady,
id: host_machine.id
end
end
end
end

View File

@ -13,6 +13,10 @@ module VagrantPlugins
error_key(:execute_error)
end
class HostVMCommunicatorNotReady < DockerError
error_key(:host_vm_communicator_not_ready)
end
class ImageNotConfiguredError < DockerError
error_key(:docker_provider_image_not_configured)
end

View File

@ -140,6 +140,17 @@ en:
Stderr: %{stderr}
Stdout: %{stdout}
host_vm_communicator_not_ready: |-
The Docker provider was able to bring up the host VM successfully
but the host VM is still reporting that SSH is unavailable. This
sometimes happens with certain providers due to bugs in the
underlying hypervisor, and can be fixed with a `vagrant reload`.
The ID for the host VM is shown below for convenience.
If this does not fix it, please verify that the host VM provider
is functional and properly configured.
Host VM ID: %{id}
state_not_running: |-
The container never entered the "running" state, or entered it
briefly but reverted back to another state. Please verify that