diff --git a/command/kv/del/kv_delete.go b/command/kv/del/kv_delete.go index 78e1967ee7..62fe49f7ca 100644 --- a/command/kv/del/kv_delete.go +++ b/command/kv/del/kv_delete.go @@ -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 } diff --git a/command/kv/del/kv_delete_test.go b/command/kv/del/kv_delete_test.go index aeba734452..982a906853 100644 --- a/command/kv/del/kv_delete_test.go +++ b/command/kv/del/kv_delete_test.go @@ -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"}, diff --git a/command/kv/put/kv_put.go b/command/kv/put/kv_put.go index 0f416273d1..55c73439dc 100644 --- a/command/kv/put/kv_put.go +++ b/command/kv/put/kv_put.go @@ -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 diff --git a/command/kv/put/kv_put_test.go b/command/kv/put/kv_put_test.go index 12c99d6f37..eec776b4e5 100644 --- a/command/kv/put/kv_put_test.go +++ b/command/kv/put/kv_put_test.go @@ -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",