From d0b2bfbf52bd66d91103e596ccf556af89ae6990 Mon Sep 17 00:00:00 2001 From: Guillaume Tardif Date: Thu, 11 Jun 2020 10:41:51 +0200 Subject: [PATCH] Fix `docker context ls` that was not displaying legacy context endpoints --- cli/cmd/context/ls.go | 2 +- context/store/store.go | 10 ++++++---- context/store/storedefault.go | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cli/cmd/context/ls.go b/cli/cmd/context/ls.go index 7ee38fc0b..9d4092966 100644 --- a/cli/cmd/context/ls.go +++ b/cli/cmd/context/ls.go @@ -94,7 +94,7 @@ func getEndpoint(name string, meta map[string]interface{}) string { if !ok { return "" } - data, ok := endpoints.(store.Endpoint) + data, ok := endpoints.(*store.Endpoint) if !ok { return "" } diff --git a/context/store/store.go b/context/store/store.go index 5844fcbd4..465070a0b 100644 --- a/context/store/store.go +++ b/context/store/store.go @@ -211,12 +211,14 @@ func toTypedEndpoints(endpoints map[string]interface{}) (map[string]interface{}, return nil, err } typeGetters := getters() - if _, ok := typeGetters[k]; !ok { - result[k] = v - continue + typeGetter, ok := typeGetters[k]; + if !ok { + typeGetter = func() interface{} { + return &Endpoint{} + } } - val := typeGetters[k]() + val := typeGetter() err = json.Unmarshal(bytes, &val) if err != nil { return nil, err diff --git a/context/store/storedefault.go b/context/store/storedefault.go index 141d4178b..95785c1f5 100644 --- a/context/store/storedefault.go +++ b/context/store/storedefault.go @@ -58,10 +58,10 @@ func dockerDefaultContext() (*DockerContext, error) { meta := DockerContext{ Name: "default", Endpoints: map[string]interface{}{ - "docker": Endpoint{ + "docker": &Endpoint{ Host: defaultCtx.Endpoints.Docker.Host, }, - "kubernetes": Endpoint{ + "kubernetes": &Endpoint{ Host: defaultCtx.Endpoints.Kubernetes.Host, DefaultNamespace: defaultCtx.Endpoints.Kubernetes.DefaultNamespace, },