Merge pull request #10321 from chrisroberts/f-ssh-comm-output
Prevent overly verbose output from SSH communicator
This commit is contained in:
commit
b0fc33e9b7
|
@ -75,8 +75,7 @@ module VagrantPlugins
|
||||||
ssh_auth_type = "password" if ssh_info[:password]
|
ssh_auth_type = "password" if ssh_info[:password]
|
||||||
@machine.ui.detail("SSH auth method: #{ssh_auth_type}")
|
@machine.ui.detail("SSH auth method: #{ssh_auth_type}")
|
||||||
|
|
||||||
last_message = nil
|
previous_messages = {}
|
||||||
last_message_repeat_at = 0
|
|
||||||
while true
|
while true
|
||||||
message = nil
|
message = nil
|
||||||
begin
|
begin
|
||||||
|
@ -123,14 +122,13 @@ module VagrantPlugins
|
||||||
if message
|
if message
|
||||||
message_at = Time.now.to_f
|
message_at = Time.now.to_f
|
||||||
show_message = true
|
show_message = true
|
||||||
if last_message == message
|
if previous_messages[message]
|
||||||
show_message = (message_at - last_message_repeat_at) > 10.0
|
show_message = (message_at - previous_messages[message]) > 10.0
|
||||||
end
|
end
|
||||||
|
|
||||||
if show_message
|
if show_message
|
||||||
@machine.ui.detail("Warning: #{message} Retrying...")
|
@machine.ui.detail("Warning: #{message} Retrying...")
|
||||||
last_message = message
|
previous_messages[message] = message_at
|
||||||
last_message_repeat_at = message_at
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -116,6 +116,49 @@ describe VagrantPlugins::CommunicatorSSH::Communicator do
|
||||||
expect(communicator.wait_for_ready(0.6)).to eq(true)
|
expect(communicator.wait_for_ready(0.6)).to eq(true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when printing message to the user" do
|
||||||
|
before do
|
||||||
|
allow(machine).to receive(:ssh_info).
|
||||||
|
and_return(host: '10.1.2.3', port: 22).ordered
|
||||||
|
allow(communicator).to receive(:connect)
|
||||||
|
allow(communicator).to receive(:ready?).and_return(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should print message" do
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(ui).to receive(:detail).with(/timeout/)
|
||||||
|
communicator.wait_for_ready(0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not print the same message twice" do
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(ui).to receive(:detail).with(/timeout/)
|
||||||
|
expect(ui).not_to receive(:detail).with(/timeout/)
|
||||||
|
communicator.wait_for_ready(0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should print different messages" do
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHDisconnected)
|
||||||
|
expect(ui).to receive(:detail).with(/timeout/)
|
||||||
|
expect(ui).to receive(:detail).with(/disconnect/)
|
||||||
|
communicator.wait_for_ready(0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not print different messages twice" do
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHDisconnected)
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHConnectionTimeout)
|
||||||
|
expect(communicator).to receive(:connect).and_raise(Vagrant::Errors::SSHDisconnected)
|
||||||
|
expect(ui).to receive(:detail).with(/timeout/)
|
||||||
|
expect(ui).to receive(:detail).with(/disconnect/)
|
||||||
|
expect(ui).not_to receive(:detail).with(/timeout/)
|
||||||
|
expect(ui).not_to receive(:detail).with(/disconnect/)
|
||||||
|
communicator.wait_for_ready(0.5)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue