consulkvjson

package module
v0.0.0-...-8a6c577 Latest Latest
Warning

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

Go to latest
Published: May 2, 2018 License: BSD-3-Clause Imports: 4 Imported by: 0

README ¶

consulkvjson 🌲

The Consul KV store has some nice tree properties for querying for a subtree (-recurse with a prefix). However, the output is still a flat list of KV pairs.

It would be nice if it were possible to return a JSON representation of the subtree at a path. The inverse would also be nice, to convert a JSON blob into a list of KV pairs, accounting for key hierarchy.

This is a small golang implementation of that.

Calling ToKVs with a JSON blob like this:

{
  "key": {
    "at" : {
      "some": {
        "depth": true
      }
    }
  },
  "at_root": 123
}

Will return something like this:

[
  {"key": "key/at/some/depth", "value": "true"},
  {"key": "at_root", "value": "123"},
]

And ToJSON will do the inverse. Note that JSON -> KVs turns all "leaves" of the JSON tree (numeric, boolean, string, null values) to strings.

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

This section is empty.

Functions ¶

func ConsulKVsToJSON ¶

func ConsulKVsToJSON(consulKvs consul.KVPairs) (map[string]interface{}, error)

ConsulKVsToJSON converts from the consul KVPair output to json

func ToJSON ¶

func ToJSON(kvs []*KV) (map[string]interface{}, error)

ToJSON converts a list of KVs to a JSON tree

Types ¶

type KV ¶

type KV struct {
	Key   string
	Value string
}

KV represents a KV pair

func ToKVs ¶

func ToKVs(jsonData []byte) ([]*KV, error)

ToKVs takes a json byte array and returns a list of KV pairs where each key is a path in the Consul KV store

Jump to

Keyboard shortcuts

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