diff --git a/lib/puppet/functions/vault_lookup/lookup.rb b/lib/puppet/functions/vault_lookup/lookup.rb index 17ba90d..6eeec44 100644 --- a/lib/puppet/functions/vault_lookup/lookup.rb +++ b/lib/puppet/functions/vault_lookup/lookup.rb @@ -25,14 +25,14 @@ def lookup(path, vault_url = nil) secret_response = connection.get("/v1/#{path}", 'X-Vault-Token' => token) unless secret_response.is_a?(Net::HTTPOK) - message = "Received #{secret_response.code} response code from vault at #{uri.host} for secret lookup" + message = "Received #{secret_response.code} response code from vault at #{uri.host} for #{path} lookup" raise Puppet::Error, append_api_errors(message, secret_response) end begin data = JSON.parse(secret_response.body)['data'] rescue StandardError - raise Puppet::Error, 'Error parsing json secret data from vault response' + raise Puppet::Error, "Error parsing json secret data from vault response for #{path} path" end Puppet::Pops::Types::PSensitiveType::Sensitive.new(data) diff --git a/spec/functions/lookup_spec.rb b/spec/functions/lookup_spec.rb index eb6c3e1..673ed77 100644 --- a/spec/functions/lookup_spec.rb +++ b/spec/functions/lookup_spec.rb @@ -100,7 +100,7 @@ expect { function.execute('secret/test', 'https://vault.doesnotexist:8200') - }.to raise_error(Puppet::Error, %r{Received 403 response code from vault at vault.doesnotexist for secret lookup.*permission denied}) + }.to raise_error(Puppet::Error, %r{Received 403 response code from vault at vault.doesnotexist for .*lookup.*permission denied}) end it 'raises a Puppet error when warning present' do @@ -120,7 +120,7 @@ expect { function.execute('secret/test', 'https://vault.doesnotexist:8200') - }.to raise_error(Puppet::Error, %r{Received 404 response code from vault at vault.doesnotexist for secret lookup.*Invalid path for a versioned K/V secrets engine}) + }.to raise_error(Puppet::Error, %r{Received 404 response code from vault at vault.doesnotexist for .*lookup.*Invalid path for a versioned K/V secrets engine}) end it 'logs on, requests a secret using a token, and returns the data wrapped in the Sensitive type' do