Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return None for keys which don't exist #13

Closed
DavidWittman opened this issue May 25, 2015 · 2 comments
Closed

Return None for keys which don't exist #13

DavidWittman opened this issue May 25, 2015 · 2 comments

Comments

@DavidWittman
Copy link
Contributor

I'm all for asking for forgiveness rather than permission, but raising an InvalidPath exception for every missed read seems a little excessive. Would you be opposed to returning None instead?

This is similar to how the vault-ruby client handles it.

  class Logical < Request
    # Read the secret at the given path. If the secret does not exist, +nil+
    # will be returned.
    #
    # @example
    #   Vault.logical.read("secret/password") #=> #<Vault::Secret lease_id="">
    #
    # @param [String] path
    #   the path to read
    #
    # @return [Secret, nil]
    def read(path)
      json = client.get("/v1/#{path}")
      return Secret.decode(json)
    rescue HTTPError => e
      return nil if e.code == 404
      raise
    end

https://github.com/hashicorp/vault-ruby/blob/master/lib/vault/api/logical.rb#L16-L32

@ianunruh
Copy link
Member

I agree, this will make using the client more friendly.

@DavidWittman
Copy link
Contributor Author

👍 Thanks @ianunruh!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants