class SettingsReader::VaultResolver::Refresher
Vault
Lease refresher task
Constants
- DEFAULT_RENEW_DELAY
- REFRESH_INTERVAL
Attributes
cache[R]
config[R]
Public Class Methods
new(cache, config)
click to toggle source
# File lib/settings_reader/vault_resolver/refresher.rb, line 14 def initialize(cache, config) @cache = cache @config = config end
Public Instance Methods
refresh()
click to toggle source
# File lib/settings_reader/vault_resolver/refresher.rb, line 19 def refresh info { 'Performing Vault leases refresh' } promises = cache.entries.map do |entry| debug { "Checking lease for #{entry}. Leased?: #{entry.leased?}. Expires in: #{entry.expires_in}s" } refresh_entry(entry) end.compact promises.each(&:wait) promises end
refresh_entry(entry)
click to toggle source
# File lib/settings_reader/vault_resolver/refresher.rb, line 29 def refresh_entry(entry) return unless entry.expires_in < config.lease_renew_delay Concurrent::Promise.execute do debug { "Refreshing lease for #{entry}. Expires in: #{entry.expires_in}" } config.vault_engine_for(entry.address).renew(entry) info { "Lease renewed for #{entry}. Expires in: #{entry.expires_in}" } entry rescue StandardError => e error { "Error refreshing lease for #{entry}: #{e.message}" } raise SettingsReader::VaultResolver::Error, e.message end end