diff options
-rw-r--r-- | vault/simple_client.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/vault/simple_client.go b/vault/simple_client.go index 560ebfe..4ceb4b5 100644 --- a/vault/simple_client.go +++ b/vault/simple_client.go | |||
@@ -42,6 +42,19 @@ func loginAndRead(path string) (*api.Secret, error) { | |||
42 | return s, nil | 42 | return s, nil |
43 | } | 43 | } |
44 | 44 | ||
45 | func GetVaultKeyStruct(path string, out interface{}) error { | ||
46 | s, err := loginAndRead(fmt.Sprintf("kv/data/%s", path)) | ||
47 | if err != nil { | ||
48 | return err | ||
49 | } | ||
50 | |||
51 | if err = mapstructure.Decode(s.Data["data"], out); err != nil { | ||
52 | return err | ||
53 | } | ||
54 | |||
55 | return nil | ||
56 | } | ||
57 | |||
45 | func GetVaultKey(path string) (Credential, error) { | 58 | func GetVaultKey(path string) (Credential, error) { |
46 | s, err := loginAndRead(fmt.Sprintf("kv/data/%s", path)) | 59 | s, err := loginAndRead(fmt.Sprintf("kv/data/%s", path)) |
47 | if err != nil { | 60 | if err != nil { |