Browse Source

Merge pull request #354 from philips/fixup-prevExist-README

feat(README): add a prevExist example
Xiang Li 12 years ago
parent
commit
e34d368a3e
1 changed files with 16 additions and 4 deletions
  1. 16 4
      README.md

+ 16 - 4
README.md

@@ -219,9 +219,9 @@ The watch command returns immediately with the same response as previous.
 
 ### Atomic Compare-and-Swap (CAS)
 
-Etcd can be used as a centralized coordination service in a cluster and `CompareAndSwap` is the most basic operation to build distributed lock service. 
+Etcd can be used as a centralized coordination service in a cluster and `CompareAndSwap` is the most basic operation to build distributed lock service.
 
-This command will set the value of a key only if the client-provided conditions are equal to the current conditions. 
+This command will set the value of a key only if the client-provided conditions are equal to the current conditions.
 
 The current comparable conditions are:
 
@@ -238,8 +238,20 @@ Let's create a key-value pair first: `foo=one`.
 curl -L http://127.0.0.1:4001/v2/keys/foo -XPUT -d value=one
 ```
 
-Let's try an invalid `CompareAndSwap` command first.
-We can provide the `prevValue` parameter to the set command to make it a `CompareAndSwap` command.
+Let's try some invalid `CompareAndSwap` commands first.
+
+Trying to set this existing key with `prevExist=false` fails as expected:
+```sh
+curl -L http://127.0.0.1:4001/v2/keys/foo?prevExist=false -XPUT -d value=three
+```
+
+The error code explains the problem:
+
+```json
+{"errorCode":105,"message":"Already exists","cause":"/foo","index":39776}
+```
+
+Now lets provide a `prevValue` parameter:
 
 ```sh
 curl -L http://127.0.0.1:4001/v2/keys/foo?prevValue=two -XPUT -d value=three