diff options
| author | Stuart Clark <stuart.clark@Jahingo.com> | 2017-08-06 03:20:34 +0100 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2017-08-05 22:20:34 -0400 |
| commit | 7a16088eeb7490977a41390ec93e9eeafa2eec8b (patch) | |
| tree | 4fa21358ee0e4b6c7bc326fe7040d17157eae576 /data.go | |
| parent | be871892fb11fcf13f882da9cfa074cafbcc7c39 (diff) | |
Vault write support (#183)
* Add write support for Vault to enable the use of dynamic secrets
Diffstat (limited to 'data.go')
| -rw-r--r-- | data.go | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -321,12 +321,37 @@ func readVault(source *Source, args ...string) ([]byte, error) { addCleanupHook(source.VC.Logout) } + params := make(map[string]interface{}) + p := source.URL.Path + + for key, val := range source.URL.Query() { + params[key] = strings.Join(val, " ") + } + if len(args) == 1 { - p = p + "/" + args[0] + parsed, err := url.Parse(args[0]) + if err != nil { + return nil, err + } + + if parsed.Path != "" { + p = p + "/" + parsed.Path + } + + for key, val := range parsed.Query() { + params[key] = strings.Join(val, " ") + } } - data, err := source.VC.Read(p) + var data []byte + var err error + + if len(params) > 0 { + data, err = source.VC.Write(p, params) + } else { + data, err = source.VC.Read(p) + } if err != nil { return nil, err } |
