diff --git a/pkg/api/unstructured_test.go b/pkg/api/unstructured_test.go index deacd9f4e4b..dc90f8bbfc8 100644 --- a/pkg/api/unstructured_test.go +++ b/pkg/api/unstructured_test.go @@ -98,14 +98,14 @@ func doRoundTrip(t *testing.T, group testapi.TestGroup, kind string) { } newUnstr := make(map[string]interface{}) - err = unstructured.NewConverter().ToUnstructured(item, &newUnstr) + err = unstructured.Converter.ToUnstructured(item, &newUnstr) if err != nil { t.Errorf("ToUnstructured failed: %v", err) return } newObj := reflect.New(reflect.TypeOf(item).Elem()).Interface().(runtime.Object) - err = unstructured.NewConverter().FromUnstructured(newUnstr, newObj) + err = unstructured.Converter.FromUnstructured(newUnstr, newObj) if err != nil { t.Errorf("FromUnstructured failed: %v", err) return @@ -139,11 +139,11 @@ func BenchmarkToFromUnstructured(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { unstr := map[string]interface{}{} - if err := unstructured.NewConverter().ToUnstructured(&items[i%size], &unstr); err != nil { + if err := unstructured.Converter.ToUnstructured(&items[i%size], &unstr); err != nil { b.Fatalf("unexpected error: %v", err) } obj := v1.Pod{} - if err := unstructured.NewConverter().FromUnstructured(unstr, &obj); err != nil { + if err := unstructured.Converter.FromUnstructured(unstr, &obj); err != nil { b.Fatalf("unexpected error: %v", err) } } diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go index 75b5c56506f..a8d94dd19a1 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go @@ -57,18 +57,20 @@ var ( unmarshalerType = reflect.TypeOf(new(encodingjson.Unmarshaler)).Elem() mapStringInterfaceType = reflect.TypeOf(map[string]interface{}{}) fieldCache = newFieldsCache() + Converter = newConverter() + ) -// Converter knows how to convert betweek runtime.Object and +// ConverterImpl knows how to convert betweek runtime.Object and // Unstructured in both ways. -type Converter struct { +type ConverterImpl struct { } -func NewConverter() *Converter { - return &Converter{} +func newConverter() *ConverterImpl { + return &ConverterImpl{} } -func (c *Converter) FromUnstructured(u map[string]interface{}, obj runtime.Object) error { +func (c *ConverterImpl) FromUnstructured(u map[string]interface{}, obj runtime.Object) error { return fromUnstructured(reflect.ValueOf(u), reflect.ValueOf(obj).Elem()) } @@ -304,7 +306,7 @@ func interfaceFromUnstructured(sv, dv reflect.Value) error { return nil } -func (c *Converter) ToUnstructured(obj runtime.Object, u *map[string]interface{}) error { +func (c *ConverterImpl) ToUnstructured(obj runtime.Object, u *map[string]interface{}) error { return toUnstructured(reflect.ValueOf(obj).Elem(), reflect.ValueOf(u).Elem()) } diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter_test.go b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter_test.go index b661cf2f28b..c7584415d99 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter_test.go @@ -122,14 +122,14 @@ func doRoundTrip(t *testing.T, item runtime.Object) { } newUnstr := make(map[string]interface{}) - err = NewConverter().ToUnstructured(item, &newUnstr) + err = Converter.ToUnstructured(item, &newUnstr) if err != nil { t.Errorf("ToUnstructured failed: %v", err) return } newObj := reflect.New(reflect.TypeOf(item).Elem()).Interface().(runtime.Object) - err = NewConverter().FromUnstructured(newUnstr, newObj) + err = Converter.FromUnstructured(newUnstr, newObj) if err != nil { t.Errorf("FromUnstructured failed: %v", err) return @@ -239,7 +239,7 @@ func doUnrecognized(t *testing.T, jsonData string, item runtime.Object, expected return } newObj := reflect.New(reflect.TypeOf(item).Elem()).Interface().(runtime.Object) - err = NewConverter().FromUnstructured(unstr, newObj) + err = Converter.FromUnstructured(unstr, newObj) if (err != nil) != (expectedErr != nil) { t.Errorf("Unexpected error in FromUnstructured: %v, expected: %v", err, expectedErr) }