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: 3

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