k8s.io/client-go@v0.31.1/tools/clientcmd/api/v1/conversion.go (about) 1 /* 2 Copyright 2014 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package v1 18 19 import ( 20 "fmt" 21 "sort" 22 23 "k8s.io/apimachinery/pkg/conversion" 24 "k8s.io/apimachinery/pkg/runtime" 25 "k8s.io/client-go/tools/clientcmd/api" 26 ) 27 28 func Convert_Slice_v1_NamedCluster_To_Map_string_To_Pointer_api_Cluster(in *[]NamedCluster, out *map[string]*api.Cluster, s conversion.Scope) error { 29 for _, curr := range *in { 30 newCluster := api.NewCluster() 31 if err := Convert_v1_Cluster_To_api_Cluster(&curr.Cluster, newCluster, s); err != nil { 32 return err 33 } 34 if *out == nil { 35 *out = make(map[string]*api.Cluster) 36 } 37 if (*out)[curr.Name] == nil { 38 (*out)[curr.Name] = newCluster 39 } else { 40 return fmt.Errorf("error converting *[]NamedCluster into *map[string]*api.Cluster: duplicate name \"%v\" in list: %v", curr.Name, *in) 41 } 42 } 43 return nil 44 } 45 46 func Convert_Map_string_To_Pointer_api_Cluster_To_Slice_v1_NamedCluster(in *map[string]*api.Cluster, out *[]NamedCluster, s conversion.Scope) error { 47 allKeys := make([]string, 0, len(*in)) 48 for key := range *in { 49 allKeys = append(allKeys, key) 50 } 51 sort.Strings(allKeys) 52 53 for _, key := range allKeys { 54 newCluster := (*in)[key] 55 oldCluster := Cluster{} 56 if err := Convert_api_Cluster_To_v1_Cluster(newCluster, &oldCluster, s); err != nil { 57 return err 58 } 59 namedCluster := NamedCluster{key, oldCluster} 60 *out = append(*out, namedCluster) 61 } 62 return nil 63 } 64 65 func Convert_Slice_v1_NamedAuthInfo_To_Map_string_To_Pointer_api_AuthInfo(in *[]NamedAuthInfo, out *map[string]*api.AuthInfo, s conversion.Scope) error { 66 for _, curr := range *in { 67 newAuthInfo := api.NewAuthInfo() 68 if err := Convert_v1_AuthInfo_To_api_AuthInfo(&curr.AuthInfo, newAuthInfo, s); err != nil { 69 return err 70 } 71 if *out == nil { 72 *out = make(map[string]*api.AuthInfo) 73 } 74 if (*out)[curr.Name] == nil { 75 (*out)[curr.Name] = newAuthInfo 76 } else { 77 return fmt.Errorf("error converting *[]NamedAuthInfo into *map[string]*api.AuthInfo: duplicate name \"%v\" in list: %v", curr.Name, *in) 78 } 79 } 80 return nil 81 } 82 83 func Convert_Map_string_To_Pointer_api_AuthInfo_To_Slice_v1_NamedAuthInfo(in *map[string]*api.AuthInfo, out *[]NamedAuthInfo, s conversion.Scope) error { 84 allKeys := make([]string, 0, len(*in)) 85 for key := range *in { 86 allKeys = append(allKeys, key) 87 } 88 sort.Strings(allKeys) 89 90 for _, key := range allKeys { 91 newAuthInfo := (*in)[key] 92 oldAuthInfo := AuthInfo{} 93 if err := Convert_api_AuthInfo_To_v1_AuthInfo(newAuthInfo, &oldAuthInfo, s); err != nil { 94 return err 95 } 96 namedAuthInfo := NamedAuthInfo{key, oldAuthInfo} 97 *out = append(*out, namedAuthInfo) 98 } 99 return nil 100 } 101 102 func Convert_Slice_v1_NamedContext_To_Map_string_To_Pointer_api_Context(in *[]NamedContext, out *map[string]*api.Context, s conversion.Scope) error { 103 for _, curr := range *in { 104 newContext := api.NewContext() 105 if err := Convert_v1_Context_To_api_Context(&curr.Context, newContext, s); err != nil { 106 return err 107 } 108 if *out == nil { 109 *out = make(map[string]*api.Context) 110 } 111 if (*out)[curr.Name] == nil { 112 (*out)[curr.Name] = newContext 113 } else { 114 return fmt.Errorf("error converting *[]NamedContext into *map[string]*api.Context: duplicate name \"%v\" in list: %v", curr.Name, *in) 115 } 116 } 117 return nil 118 } 119 120 func Convert_Map_string_To_Pointer_api_Context_To_Slice_v1_NamedContext(in *map[string]*api.Context, out *[]NamedContext, s conversion.Scope) error { 121 allKeys := make([]string, 0, len(*in)) 122 for key := range *in { 123 allKeys = append(allKeys, key) 124 } 125 sort.Strings(allKeys) 126 127 for _, key := range allKeys { 128 newContext := (*in)[key] 129 oldContext := Context{} 130 if err := Convert_api_Context_To_v1_Context(newContext, &oldContext, s); err != nil { 131 return err 132 } 133 namedContext := NamedContext{key, oldContext} 134 *out = append(*out, namedContext) 135 } 136 return nil 137 } 138 139 func Convert_Slice_v1_NamedExtension_To_Map_string_To_runtime_Object(in *[]NamedExtension, out *map[string]runtime.Object, s conversion.Scope) error { 140 for _, curr := range *in { 141 var newExtension runtime.Object 142 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&curr.Extension, &newExtension, s); err != nil { 143 return err 144 } 145 if *out == nil { 146 *out = make(map[string]runtime.Object) 147 } 148 if (*out)[curr.Name] == nil { 149 (*out)[curr.Name] = newExtension 150 } else { 151 return fmt.Errorf("error converting *[]NamedExtension into *map[string]runtime.Object: duplicate name \"%v\" in list: %v", curr.Name, *in) 152 } 153 } 154 return nil 155 } 156 157 func Convert_Map_string_To_runtime_Object_To_Slice_v1_NamedExtension(in *map[string]runtime.Object, out *[]NamedExtension, s conversion.Scope) error { 158 allKeys := make([]string, 0, len(*in)) 159 for key := range *in { 160 allKeys = append(allKeys, key) 161 } 162 sort.Strings(allKeys) 163 164 for _, key := range allKeys { 165 newExtension := (*in)[key] 166 oldExtension := runtime.RawExtension{} 167 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&newExtension, &oldExtension, s); err != nil { 168 return err 169 } 170 namedExtension := NamedExtension{key, oldExtension} 171 *out = append(*out, namedExtension) 172 } 173 return nil 174 }