Merge pull request #1782 from weaveworks/1709-json-func

Add a 'json' function for 'weave report -f'
This commit is contained in:
Adam Harrison committed 2015-12-15 17:09:02 +00:00
commit 0c077b8bb1
2 files changed
+13 -1

No files matched your search

+7 -1
View File
@@ -246,7 +246,13 @@ func HandleHTTP(muxRouter *mux.Router, version string, router *weave.NetworkRout
muxRouter.Methods("GET").Path("/report").Queries("format", "{format}").HandlerFunc(
func(w http.ResponseWriter, r *http.Request) {
formatTemplate, err := template.New("format").Parse(mux.Vars(r)["format"])
funcs := template.FuncMap{
"json": func(v interface{}) string {
a, _ := json.Marshal(v)
return string(a)
},
}
formatTemplate, err := template.New("format").Funcs(funcs).Parse(mux.Vars(r)["format"])
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
+6
View File
@@ -232,6 +232,12 @@ inspect`:
$ weave report -f {% raw %}'{{.DNS.Domain}}'{% endraw %}
weave.local.
Weave adds a template function, `json`, which can be applied to get
results in JSON format.
$ weave report -f {% raw %}'{{json .DNS}}'{% endraw %}
{% raw %}{"Domain":"weave.local.","Upstream":["8.8.8.8","8.8.4.4"],"Address":"172.17.0.1:53","TTL":1,"Entries":null}{% endraw %}
### <a name="list-attached-containers"></a>List attached containers
weave ps