Rejig 404 handling again. (#4264)

Done this way, existing tests pass, and it makes logical sense, so we're
likely to have the least impact like this.
This commit is contained in:
Jeff Mitchell
2018-04-04 04:41:46 -04:00
committed by GitHub
parent 29c25810fa
commit 4391af6e71
3 changed files with 18 additions and 13 deletions

View File

@@ -51,8 +51,8 @@ func (c *Logical) Read(path string) (*Secret, error) {
defer resp.Body.Close()
}
if resp != nil && resp.StatusCode == 404 {
secret, err := ParseSecret(resp.Body)
switch err {
secret, parseErr := ParseSecret(resp.Body)
switch parseErr {
case nil:
case io.EOF:
return nil, nil
@@ -82,8 +82,8 @@ func (c *Logical) List(path string) (*Secret, error) {
defer resp.Body.Close()
}
if resp != nil && resp.StatusCode == 404 {
secret, err := ParseSecret(resp.Body)
switch err {
secret, parseErr := ParseSecret(resp.Body)
switch parseErr {
case nil:
case io.EOF:
return nil, nil
@@ -113,8 +113,8 @@ func (c *Logical) Write(path string, data map[string]interface{}) (*Secret, erro
defer resp.Body.Close()
}
if resp != nil && resp.StatusCode == 404 {
secret, err := ParseSecret(resp.Body)
switch err {
secret, parseErr := ParseSecret(resp.Body)
switch parseErr {
case nil:
case io.EOF:
return nil, nil
@@ -122,9 +122,8 @@ func (c *Logical) Write(path string, data map[string]interface{}) (*Secret, erro
return nil, err
}
if secret != nil && (len(secret.Warnings) > 0 || len(secret.Data) > 0) {
return secret, nil
return secret, err
}
return nil, nil
}
if err != nil {
return nil, err
@@ -144,8 +143,8 @@ func (c *Logical) Delete(path string) (*Secret, error) {
defer resp.Body.Close()
}
if resp != nil && resp.StatusCode == 404 {
secret, err := ParseSecret(resp.Body)
switch err {
secret, parseErr := ParseSecret(resp.Body)
switch parseErr {
case nil:
case io.EOF:
return nil, nil
@@ -153,9 +152,8 @@ func (c *Logical) Delete(path string) (*Secret, error) {
return nil, err
}
if secret != nil && (len(secret.Warnings) > 0 || len(secret.Data) > 0) {
return secret, nil
return secret, err
}
return nil, nil
}
if err != nil {
return nil, err