// Copyright 2017 The etcd Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package client_test import ( "context" "fmt" "log" "sort" "github.com/coreos/etcd/client" ) func ExampleKeysAPI_directory() { c, err := client.New(client.Config{ Endpoints: exampleEndpoints, Transport: exampleTransport, }) if err != nil { log.Fatal(err) } kapi := client.NewKeysAPI(c) // Setting '/myNodes' to create a directory that will hold some keys. o := client.SetOptions{Dir: true} resp, err := kapi.Set(context.Background(), "/myNodes", "", &o) if err != nil { log.Fatal(err) } // Add keys to /myNodes directory. resp, err = kapi.Set(context.Background(), "/myNodes/key1", "value1", nil) if err != nil { log.Fatal(err) } resp, err = kapi.Set(context.Background(), "/myNodes/key2", "value2", nil) if err != nil { log.Fatal(err) } // fetch directory resp, err = kapi.Get(context.Background(), "/myNodes", nil) if err != nil { log.Fatal(err) } // print directory keys sort.Sort(resp.Node.Nodes) for _, n := range resp.Node.Nodes { fmt.Printf("Key: %q, Value: %q\n", n.Key, n.Value) } // Output: // Key: "/myNodes/key1", Value: "value1" // Key: "/myNodes/key2", Value: "value2" } func ExampleKeysAPI_setget() { c, err := client.New(client.Config{ Endpoints: exampleEndpoints, Transport: exampleTransport, }) if err != nil { log.Fatal(err) } kapi := client.NewKeysAPI(c) // Set key "/foo" to value "bar". resp, err := kapi.Set(context.Background(), "/foo", "bar", nil) if err != nil { log.Fatal(err) } // Get key "/foo" resp, err = kapi.Get(context.Background(), "/foo", nil) if err != nil { log.Fatal(err) } fmt.Printf("%q key has %q value\n", resp.Node.Key, resp.Node.Value) // Output: "/foo" key has "bar" value }