module Aws::RefreshingCredentials

def credentials

Returns:
  • (Credentials) -
def credentials
  refresh_if_near_expiration
  @credentials
end

def expiration

Returns:
  • (Time, nil) -
def expiration
  refresh_if_near_expiration
  @expiration
end

def initialize(options = {})

def initialize(options = {})
  @mutex = Mutex.new
  refresh
end

def near_expiration?

def near_expiration?
  if @expiration
    # are we within 5 minutes of expiration?
    (Time.now.to_i + 5 * 60) > @expiration.to_i
  else
    true
  end
end

def refresh!

Returns:
  • (void) -
def refresh!
  @mutex.synchronize { refresh }
end

def refresh_if_near_expiration

5 minutes of expiration.
Refreshes instance metadata credentials if they are within
def refresh_if_near_expiration
  if near_expiration?
    @mutex.synchronize do
      refresh if near_expiration?
    end
  end
end