aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/hashicorp/vault/api/sys_auth.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/vault/api/sys_auth.go')
-rw-r--r--vendor/github.com/hashicorp/vault/api/sys_auth.go41
1 files changed, 20 insertions, 21 deletions
diff --git a/vendor/github.com/hashicorp/vault/api/sys_auth.go b/vendor/github.com/hashicorp/vault/api/sys_auth.go
index 0b1a319..447c5d5 100644
--- a/vendor/github.com/hashicorp/vault/api/sys_auth.go
+++ b/vendor/github.com/hashicorp/vault/api/sys_auth.go
@@ -1,6 +1,8 @@
package api
import (
+ "context"
+ "errors"
"fmt"
"github.com/mitchellh/mapstructure"
@@ -8,35 +10,27 @@ import (
func (c *Sys) ListAuth() (map[string]*AuthMount, error) {
r := c.c.NewRequest("GET", "/v1/sys/auth")
- resp, err := c.c.RawRequest(r)
+
+ ctx, cancelFunc := context.WithCancel(context.Background())
+ defer cancelFunc()
+ resp, err := c.c.RawRequestWithContext(ctx, r)
if err != nil {
return nil, err
}
defer resp.Body.Close()
- var result map[string]interface{}
- err = resp.DecodeJSON(&result)
+ secret, err := ParseSecret(resp.Body)
if err != nil {
return nil, err
}
+ if secret == nil || secret.Data == nil {
+ return nil, errors.New("data from server response is empty")
+ }
mounts := map[string]*AuthMount{}
- for k, v := range result {
- switch v.(type) {
- case map[string]interface{}:
- default:
- continue
- }
- var res AuthMount
- err = mapstructure.Decode(v, &res)
- if err != nil {
- return nil, err
- }
- // Not a mount, some other api.Secret data
- if res.Type == "" {
- continue
- }
- mounts[k] = &res
+ err = mapstructure.Decode(secret.Data, &mounts)
+ if err != nil {
+ return nil, err
}
return mounts, nil
@@ -56,7 +50,9 @@ func (c *Sys) EnableAuthWithOptions(path string, options *EnableAuthOptions) err
return err
}
- resp, err := c.c.RawRequest(r)
+ ctx, cancelFunc := context.WithCancel(context.Background())
+ defer cancelFunc()
+ resp, err := c.c.RawRequestWithContext(ctx, r)
if err != nil {
return err
}
@@ -67,7 +63,10 @@ func (c *Sys) EnableAuthWithOptions(path string, options *EnableAuthOptions) err
func (c *Sys) DisableAuth(path string) error {
r := c.c.NewRequest("DELETE", fmt.Sprintf("/v1/sys/auth/%s", path))
- resp, err := c.c.RawRequest(r)
+
+ ctx, cancelFunc := context.WithCancel(context.Background())
+ defer cancelFunc()
+ resp, err := c.c.RawRequestWithContext(ctx, r)
if err == nil {
defer resp.Body.Close()
}