فهرست منبع

Fix `docker context ls` that was not displaying legacy context endpoints

Guillaume Tardif 5 سال پیش
والد
کامیت
d0b2bfbf52
3فایلهای تغییر یافته به همراه9 افزوده شده و 7 حذف شده
  1. 1 1
      cli/cmd/context/ls.go
  2. 6 4
      context/store/store.go
  3. 2 2
      context/store/storedefault.go

+ 1 - 1
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 ""
 	}

+ 6 - 4
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

+ 2 - 2
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,
 			},