Merge pull request #8331 from hashicorp/cli/fix-cas-when-zero

command: fix cas put when index=0 and better errors in put and delete
This commit is contained in:
Kit Patella 2020-07-20 10:27:37 -07:00 committed by GitHub
commit 1cd5ef694f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 12 deletions

View File

@ -78,7 +78,7 @@ func (c *cmd) Run(args []string) int {
// ModifyIndex is required for CAS
if c.cas && c.modifyIndex == 0 {
c.UI.Error("Must specify -modify-index with -cas!")
c.UI.Error("Cannot delete a key that does not exist. Provide a -modify-index greater than than 0.")
return 1
}

View File

@ -32,7 +32,7 @@ func TestKVDeleteCommand_Validation(t *testing.T) {
},
"-cas no -modify-index": {
[]string{"-cas", "foo"},
"Must specify -modify-index",
"Cannot delete a key that does not exist",
},
"-modify-index no -cas": {
[]string{"-modify-index", "2", "foo"},

View File

@ -99,12 +99,6 @@ func (c *cmd) Run(args []string) int {
return 1
}
// ModifyIndex is required for CAS
if c.cas && c.modifyIndex == 0 {
c.UI.Error("Must specify -modify-index with -cas!")
return 1
}
// Create and test the HTTP client
client, err := c.http.APIClient()
if err != nil {
@ -127,6 +121,10 @@ func (c *cmd) Run(args []string) int {
c.UI.Error(fmt.Sprintf("Error! Did not write to %s: %s", key, err))
return 1
}
if !ok && c.modifyIndex == 0 {
c.UI.Error(fmt.Sprintf("Error! Did not write to %s: CAS performed with index=0 and key already exists.", key))
return 1
}
if !ok {
c.UI.Error(fmt.Sprintf("Error! Did not write to %s: CAS failed", key))
return 1

View File

@ -39,10 +39,6 @@ func TestKVPutCommand_Validation(t *testing.T) {
[]string{"-release", "foo"},
"Missing -session",
},
"-cas no -modify-index": {
[]string{"-cas", "foo"},
"Must specify -modify-index",
},
"no key": {
[]string{},
"Missing KEY argument",