Merge pull request #7831 from mwrock/nano

Use the cmd shell to check winrm availability to fix `vagrant up --no-provision` on nano
This commit is contained in:
Chris Roberts 2016-09-30 16:16:42 -07:00 committed by GitHub
commit f72cd286c1
2 changed files with 6 additions and 6 deletions

View File

@ -104,7 +104,7 @@ module VagrantPlugins
@logger.info("Checking whether WinRM is ready...")
result = Timeout.timeout(@machine.config.winrm.timeout) do
shell(true).powershell("hostname")
shell(true).cmd("hostname")
end
@logger.info("WinRM is ready!")

View File

@ -45,7 +45,7 @@ describe VagrantPlugins::CommunicatorWinRM::Communicator do
port: '22',
})
# Makes ready? return true
allow(shell).to receive(:powershell).with("hostname").and_return({ exitcode: 0 })
allow(shell).to receive(:cmd).with("hostname").and_return({ exitcode: 0 })
end
it "retries ssh_info until ready" do
@ -57,22 +57,22 @@ describe VagrantPlugins::CommunicatorWinRM::Communicator do
describe ".ready?" do
it "returns true if hostname command executes without error" do
expect(shell).to receive(:powershell).with("hostname").and_return({ exitcode: 0 })
expect(shell).to receive(:cmd).with("hostname").and_return({ exitcode: 0 })
expect(subject.ready?).to be_true
end
it "returns false if hostname command fails with a transient error" do
expect(shell).to receive(:powershell).with("hostname").and_raise(VagrantPlugins::CommunicatorWinRM::Errors::TransientError)
expect(shell).to receive(:cmd).with("hostname").and_raise(VagrantPlugins::CommunicatorWinRM::Errors::TransientError)
expect(subject.ready?).to be_false
end
it "raises an error if hostname command fails with an unknown error" do
expect(shell).to receive(:powershell).with("hostname").and_raise(Vagrant::Errors::VagrantError)
expect(shell).to receive(:cmd).with("hostname").and_raise(Vagrant::Errors::VagrantError)
expect { subject.ready? }.to raise_error(Vagrant::Errors::VagrantError)
end
it "raises timeout error when hostname command takes longer then winrm timeout" do
expect(shell).to receive(:powershell).with("hostname") do
expect(shell).to receive(:cmd).with("hostname") do
sleep 2 # winrm.timeout = 1
end
expect { subject.ready? }.to raise_error(Timeout::Error)