mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
parent
d6c78366cc
commit
e28b05ac86
3 changed files with 11 additions and 15 deletions
|
@ -167,7 +167,7 @@ module Fog
|
|||
Timeout::timeout(4) do
|
||||
Fog::SSH.new(ip_address, username, credentials).run(commands)
|
||||
end
|
||||
rescue Timeout::Error
|
||||
rescue Net::SSH::AuthenticationFailed, Timeout::Error
|
||||
retry
|
||||
end
|
||||
end
|
||||
|
|
|
@ -98,19 +98,7 @@ module Fog
|
|||
end
|
||||
|
||||
server.save
|
||||
# eventual consistency sometimes means a delay before it appears
|
||||
retries = 3
|
||||
begin
|
||||
server.wait_for { ready? }
|
||||
rescue Fog::Errors::Error => error
|
||||
sleep(1)
|
||||
retries -= 1
|
||||
if retries > 0
|
||||
retry
|
||||
else
|
||||
raise error
|
||||
end
|
||||
end
|
||||
server.wait_for { ready? }
|
||||
server.setup(:key_data => [server.private_key])
|
||||
server
|
||||
end
|
||||
|
|
|
@ -39,7 +39,15 @@ module Fog
|
|||
def wait_for(timeout=600, interval=1, &block)
|
||||
reload
|
||||
Fog.wait_for(timeout, interval) do
|
||||
reload or raise Fog::Errors::Error.new("Reload failed, #{self.class} #{self.identity} went away.")
|
||||
retries = 3
|
||||
if reload
|
||||
retries = 3
|
||||
elsif retries > 0
|
||||
retries -= 1
|
||||
sleep(1)
|
||||
elsif retries == 0
|
||||
raise Fog::Errors::Error.new("Reload failed, #{self.class} #{self.identity} went away.")
|
||||
end
|
||||
instance_eval(&block)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue