Documentation ¶
Overview ¶
Package clientv3util contains utility functions derived from clientv3.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func KeyExists ¶
KeyExists returns a comparison operation that evaluates to true iff the given key exists. It does this by checking if the key `Version` is greater than 0. It is a useful guard in transaction delete operations.
Example ¶
package main import ( "context" "log" "github.com/hanjm/etcd/clientv3" "github.com/hanjm/etcd/clientv3/clientv3util" ) func main() { cli, err := clientv3.New(clientv3.Config{ Endpoints: []string{"127.0.0.1:2379"}, }) if err != nil { log.Fatal(err) } defer cli.Close() kvc := clientv3.NewKV(cli) // perform a delete only if key already exists _, err = kvc.Txn(context.Background()). If(clientv3util.KeyExists("purpleidea")). Then(clientv3.OpDelete("purpleidea")). Commit() if err != nil { log.Fatal(err) } }
Output:
func KeyMissing ¶
KeyMissing returns a comparison operation that evaluates to true iff the given key does not exist.
Example ¶
package main import ( "context" "log" "github.com/hanjm/etcd/clientv3" "github.com/hanjm/etcd/clientv3/clientv3util" ) func main() { cli, err := clientv3.New(clientv3.Config{ Endpoints: []string{"127.0.0.1:2379"}, }) if err != nil { log.Fatal(err) } defer cli.Close() kvc := clientv3.NewKV(cli) // perform a put only if key is missing // It is useful to do the check atomically to avoid overwriting // the existing key which would generate potentially unwanted events, // unless of course you wanted to do an overwrite no matter what. _, err = kvc.Txn(context.Background()). If(clientv3util.KeyMissing("purpleidea")). Then(clientv3.OpPut("purpleidea", "hello world")). Commit() if err != nil { log.Fatal(err) } }
Output:
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.