class SettingsReader::VaultResolver::Engines::Abstract
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 10 def initialize(config) @config = config end
Public Instance Methods
get(address)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 18 def get(address) return unless (vault_secret = get_secret_with_retries(address)) wrap_secret(address, vault_secret) rescue Vault::VaultError => e raise SettingsReader::VaultResolver::Error, e.message end
renew(entry)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 26 def renew(entry) return unless entry.leased? new_secret = renew_lease_with_retries(entry) entry.update_renewed(new_secret) true rescue Vault::VaultError => e raise SettingsReader::VaultResolver::Error, e.message end
retrieves?(_address)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 14 def retrieves?(_address) raise NotImplementedError end
Protected Instance Methods
get_secret(address)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 50 def get_secret(address) raise NotImplementedError end
get_secret_with_retries(address)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 38 def get_secret_with_retries(address) Vault.with_retries(Vault::HTTPConnectionError, attempts: config.retrieval_retries) do get_secret(address) end end
renew_lease(entry)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 54 def renew_lease(entry) raise NotImplementedError end
renew_lease_with_retries(address)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 44 def renew_lease_with_retries(address) Vault.with_retries(Vault::HTTPConnectionError, attempts: config.lease_renew_retries) do renew_lease(address) end end
wrap_secret(address, secret)
click to toggle source
# File lib/settings_reader/vault_resolver/engines/abstract.rb, line 58 def wrap_secret(address, secret) SettingsReader::VaultResolver::Entry.new(address, secret) end