clientv3util

package
v3.2.0-rc.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2017 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func KeyExists

func KeyExists(key string) clientv3.Cmp

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 (Delete)
package main

import (
	"context"
	"log"

	"github.com/coreos/etcd/clientv3"
	"github.com/coreos/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:

Example (Put)
package main

import (
	"context"
	"log"

	"github.com/coreos/etcd/clientv3"
	"github.com/coreos/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 (transactionally) 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:

func KeyMissing

func KeyMissing(key string) clientv3.Cmp

KeyMissing returns a comparison operation that evaluates to true iff the given key does not exist.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL