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

feat(README): add a prevExist example
This commit is contained in:
Xiang Li 2013-12-01 15:24:45 -08:00
commit e34d368a3e

View File

@ -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