1/* 2Copyright 2020 The Kubernetes Authors. 3 4Licensed under the Apache License, Version 2.0 (the "License"); 5you may not use this file except in compliance with the License. 6You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10Unless required by applicable law or agreed to in writing, software 11distributed under the License is distributed on an "AS IS" BASIS, 12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13See the License for the specific language governing permissions and 14limitations under the License. 15*/ 16 17package testing 18 19import ( 20 "k8s.io/apimachinery/pkg/conversion" 21 "k8s.io/apimachinery/pkg/runtime" 22) 23 24func convertEmbeddedTestToEmbeddedTestExternal(in *EmbeddedTest, out *EmbeddedTestExternal, s conversion.Scope) error { 25 out.TypeMeta = in.TypeMeta 26 out.ID = in.ID 27 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Object, &out.Object, s); err != nil { 28 return err 29 } 30 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.EmptyObject, &out.EmptyObject, s); err != nil { 31 return err 32 } 33 return nil 34} 35 36func convertEmbeddedTestExternalToEmbeddedTest(in *EmbeddedTestExternal, out *EmbeddedTest, s conversion.Scope) error { 37 out.TypeMeta = in.TypeMeta 38 out.ID = in.ID 39 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Object, &out.Object, s); err != nil { 40 return err 41 } 42 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.EmptyObject, &out.EmptyObject, s); err != nil { 43 return err 44 } 45 return nil 46} 47 48func convertObjectTestToObjectTestExternal(in *ObjectTest, out *ObjectTestExternal, s conversion.Scope) error { 49 out.TypeMeta = in.TypeMeta 50 out.ID = in.ID 51 if in.Items != nil { 52 out.Items = make([]runtime.RawExtension, len(in.Items)) 53 for i := range in.Items { 54 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Items[i], &out.Items[i], s); err != nil { 55 return err 56 } 57 } 58 } else { 59 out.Items = nil 60 } 61 return nil 62} 63 64func convertObjectTestExternalToObjectTest(in *ObjectTestExternal, out *ObjectTest, s conversion.Scope) error { 65 out.TypeMeta = in.TypeMeta 66 out.ID = in.ID 67 if in.Items != nil { 68 out.Items = make([]runtime.Object, len(in.Items)) 69 for i := range in.Items { 70 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Items[i], &out.Items[i], s); err != nil { 71 return err 72 } 73 } 74 } else { 75 out.Items = nil 76 } 77 return nil 78} 79 80func convertInternalSimpleToExternalSimple(in *InternalSimple, out *ExternalSimple, s conversion.Scope) error { 81 out.TypeMeta = in.TypeMeta 82 out.TestString = in.TestString 83 return nil 84} 85 86func convertExternalSimpleToInternalSimple(in *ExternalSimple, out *InternalSimple, s conversion.Scope) error { 87 out.TypeMeta = in.TypeMeta 88 out.TestString = in.TestString 89 return nil 90} 91 92func convertInternalExtensionTypeToExternalExtensionType(in *InternalExtensionType, out *ExternalExtensionType, s conversion.Scope) error { 93 out.TypeMeta = in.TypeMeta 94 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Extension, &out.Extension, s); err != nil { 95 return err 96 } 97 return nil 98} 99 100func convertExternalExtensionTypeToInternalExtensionType(in *ExternalExtensionType, out *InternalExtensionType, s conversion.Scope) error { 101 out.TypeMeta = in.TypeMeta 102 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Extension, &out.Extension, s); err != nil { 103 return err 104 } 105 return nil 106} 107 108func convertInternalOptionalExtensionTypeToExternalOptionalExtensionType(in *InternalOptionalExtensionType, out *ExternalOptionalExtensionType, s conversion.Scope) error { 109 out.TypeMeta = in.TypeMeta 110 if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Extension, &out.Extension, s); err != nil { 111 return err 112 } 113 return nil 114} 115 116func convertExternalOptionalExtensionTypeToInternalOptionalExtensionType(in *ExternalOptionalExtensionType, out *InternalOptionalExtensionType, s conversion.Scope) error { 117 out.TypeMeta = in.TypeMeta 118 if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Extension, &out.Extension, s); err != nil { 119 return err 120 } 121 return nil 122} 123 124func convertTestType1ToExternalTestType1(in *TestType1, out *ExternalTestType1, s conversion.Scope) error { 125 out.MyWeirdCustomEmbeddedVersionKindField = in.MyWeirdCustomEmbeddedVersionKindField 126 out.A = in.A 127 out.B = in.B 128 out.C = in.C 129 out.D = in.D 130 out.E = in.E 131 out.F = in.F 132 out.G = in.G 133 out.H = in.H 134 out.I = in.I 135 out.J = in.J 136 out.K = in.K 137 out.L = in.L 138 out.M = in.M 139 if in.N != nil { 140 out.N = make(map[string]ExternalTestType2) 141 for key := range in.N { 142 in, tmp := in.N[key], ExternalTestType2{} 143 if err := convertTestType2ToExternalTestType2(&in, &tmp, s); err != nil { 144 return err 145 } 146 out.N[key] = tmp 147 } 148 } else { 149 out.N = nil 150 } 151 if in.O != nil { 152 out.O = new(ExternalTestType2) 153 if err := convertTestType2ToExternalTestType2(in.O, out.O, s); err != nil { 154 return err 155 } 156 } else { 157 out.O = nil 158 } 159 if in.P != nil { 160 out.P = make([]ExternalTestType2, len(in.P)) 161 for i := range in.P { 162 if err := convertTestType2ToExternalTestType2(&in.P[i], &out.P[i], s); err != nil { 163 return err 164 } 165 } 166 } 167 return nil 168} 169 170func convertExternalTestType1ToTestType1(in *ExternalTestType1, out *TestType1, s conversion.Scope) error { 171 out.MyWeirdCustomEmbeddedVersionKindField = in.MyWeirdCustomEmbeddedVersionKindField 172 out.A = in.A 173 out.B = in.B 174 out.C = in.C 175 out.D = in.D 176 out.E = in.E 177 out.F = in.F 178 out.G = in.G 179 out.H = in.H 180 out.I = in.I 181 out.J = in.J 182 out.K = in.K 183 out.L = in.L 184 out.M = in.M 185 if in.N != nil { 186 out.N = make(map[string]TestType2) 187 for key := range in.N { 188 in, tmp := in.N[key], TestType2{} 189 if err := convertExternalTestType2ToTestType2(&in, &tmp, s); err != nil { 190 return err 191 } 192 out.N[key] = tmp 193 } 194 } else { 195 out.N = nil 196 } 197 if in.O != nil { 198 out.O = new(TestType2) 199 if err := convertExternalTestType2ToTestType2(in.O, out.O, s); err != nil { 200 return err 201 } 202 } else { 203 out.O = nil 204 } 205 if in.P != nil { 206 out.P = make([]TestType2, len(in.P)) 207 for i := range in.P { 208 if err := convertExternalTestType2ToTestType2(&in.P[i], &out.P[i], s); err != nil { 209 return err 210 } 211 } 212 } 213 return nil 214} 215 216func convertTestType2ToExternalTestType2(in *TestType2, out *ExternalTestType2, s conversion.Scope) error { 217 out.A = in.A 218 out.B = in.B 219 return nil 220} 221 222func convertExternalTestType2ToTestType2(in *ExternalTestType2, out *TestType2, s conversion.Scope) error { 223 out.A = in.A 224 out.B = in.B 225 return nil 226} 227 228func RegisterConversions(s *runtime.Scheme) error { 229 if err := s.AddConversionFunc((*EmbeddedTest)(nil), (*EmbeddedTestExternal)(nil), func(a, b interface{}, scope conversion.Scope) error { 230 return convertEmbeddedTestToEmbeddedTestExternal(a.(*EmbeddedTest), b.(*EmbeddedTestExternal), scope) 231 }); err != nil { 232 return err 233 } 234 if err := s.AddConversionFunc((*EmbeddedTestExternal)(nil), (*EmbeddedTest)(nil), func(a, b interface{}, scope conversion.Scope) error { 235 return convertEmbeddedTestExternalToEmbeddedTest(a.(*EmbeddedTestExternal), b.(*EmbeddedTest), scope) 236 }); err != nil { 237 return err 238 } 239 if err := s.AddConversionFunc((*ObjectTest)(nil), (*ObjectTestExternal)(nil), func(a, b interface{}, scope conversion.Scope) error { 240 return convertObjectTestToObjectTestExternal(a.(*ObjectTest), b.(*ObjectTestExternal), scope) 241 }); err != nil { 242 return err 243 } 244 if err := s.AddConversionFunc((*ObjectTestExternal)(nil), (*ObjectTest)(nil), func(a, b interface{}, scope conversion.Scope) error { 245 return convertObjectTestExternalToObjectTest(a.(*ObjectTestExternal), b.(*ObjectTest), scope) 246 }); err != nil { 247 return err 248 } 249 if err := s.AddConversionFunc((*InternalSimple)(nil), (*ExternalSimple)(nil), func(a, b interface{}, scope conversion.Scope) error { 250 return convertInternalSimpleToExternalSimple(a.(*InternalSimple), b.(*ExternalSimple), scope) 251 }); err != nil { 252 return err 253 } 254 if err := s.AddConversionFunc((*ExternalSimple)(nil), (*InternalSimple)(nil), func(a, b interface{}, scope conversion.Scope) error { 255 return convertExternalSimpleToInternalSimple(a.(*ExternalSimple), b.(*InternalSimple), scope) 256 }); err != nil { 257 return err 258 } 259 if err := s.AddConversionFunc((*InternalExtensionType)(nil), (*ExternalExtensionType)(nil), func(a, b interface{}, scope conversion.Scope) error { 260 return convertInternalExtensionTypeToExternalExtensionType(a.(*InternalExtensionType), b.(*ExternalExtensionType), scope) 261 }); err != nil { 262 return err 263 } 264 if err := s.AddConversionFunc((*ExternalExtensionType)(nil), (*InternalExtensionType)(nil), func(a, b interface{}, scope conversion.Scope) error { 265 return convertExternalExtensionTypeToInternalExtensionType(a.(*ExternalExtensionType), b.(*InternalExtensionType), scope) 266 }); err != nil { 267 return err 268 } 269 if err := s.AddConversionFunc((*InternalOptionalExtensionType)(nil), (*ExternalOptionalExtensionType)(nil), func(a, b interface{}, scope conversion.Scope) error { 270 return convertInternalOptionalExtensionTypeToExternalOptionalExtensionType(a.(*InternalOptionalExtensionType), b.(*ExternalOptionalExtensionType), scope) 271 }); err != nil { 272 return err 273 } 274 if err := s.AddConversionFunc((*ExternalOptionalExtensionType)(nil), (*InternalOptionalExtensionType)(nil), func(a, b interface{}, scope conversion.Scope) error { 275 return convertExternalOptionalExtensionTypeToInternalOptionalExtensionType(a.(*ExternalOptionalExtensionType), b.(*InternalOptionalExtensionType), scope) 276 }); err != nil { 277 return err 278 } 279 if err := s.AddConversionFunc((*TestType1)(nil), (*ExternalTestType1)(nil), func(a, b interface{}, scope conversion.Scope) error { 280 return convertTestType1ToExternalTestType1(a.(*TestType1), b.(*ExternalTestType1), scope) 281 }); err != nil { 282 return err 283 } 284 if err := s.AddConversionFunc((*ExternalTestType1)(nil), (*TestType1)(nil), func(a, b interface{}, scope conversion.Scope) error { 285 return convertExternalTestType1ToTestType1(a.(*ExternalTestType1), b.(*TestType1), scope) 286 }); err != nil { 287 return err 288 } 289 if err := s.AddConversionFunc((*TestType2)(nil), (*ExternalTestType2)(nil), func(a, b interface{}, scope conversion.Scope) error { 290 return convertTestType2ToExternalTestType2(a.(*TestType2), b.(*ExternalTestType2), scope) 291 }); err != nil { 292 return err 293 } 294 if err := s.AddConversionFunc((*ExternalTestType2)(nil), (*TestType2)(nil), func(a, b interface{}, scope conversion.Scope) error { 295 return convertExternalTestType2ToTestType2(a.(*ExternalTestType2), b.(*TestType2), scope) 296 }); err != nil { 297 return err 298 } 299 return nil 300} 301