Method: Fog::Model#wait_for

Defined in:
lib/fog/core/model.rb

#wait_for(timeout = Fog.timeout, interval = 1, &block) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/fog/core/model.rb', line 62

def wait_for(timeout=Fog.timeout, interval=1, &block)
  reload
  retries = 3
  Fog.wait_for(timeout, interval) do
    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