module VaultPlugin::API::Backend

Public Instance Methods

creation_ttl() click to toggle source
# File lib/smart_proxy_vault/api.rb, line 55
def creation_ttl
  Client.lookup_self[:data][:creation_ttl]
end
issue(ttl, role) click to toggle source
# File lib/smart_proxy_vault/api.rb, line 46
def issue(ttl, role)
  begin
    opts = options ttl
    role.nil? ? Client.issue_token(opts) : Client.issue_role_token(role, metadata)
  rescue StandardError => e
    log_halt 500, 'Failed to generate Vault token ' + e.message
  end
end
metadata() click to toggle source
# File lib/smart_proxy_vault/api.rb, line 35
def metadata
  return {} unless add_token_metadata?
  { display_name: vault_client,
    meta: { client: vault_client, smartproxy_generated: true } }
end
options(ttl) click to toggle source
# File lib/smart_proxy_vault/api.rb, line 41
def options(ttl)
  options = metadata.merge token_options
  options.merge(ttl: ttl) unless ttl.nil?
end
renew() click to toggle source
# File lib/smart_proxy_vault/api.rb, line 59
def renew
  begin
    Client.renew_self
  rescue StandardError => e
    puts 'Failed to renew Vault token ' + e.message
  end
end
start_renewal() click to toggle source
# File lib/smart_proxy_vault/api.rb, line 67
def start_renewal
  Thread.new do
    while true do
      renew
      sleep to_seconds(creation_ttl/3)
    end
  end
end