Minor cleanup in unstructured converter

This commit is contained in:
Wojciech Tyczynski 2017-02-13 08:40:17 +01:00
parent 58ec5cce28
commit edb36d4df7
3 changed files with 15 additions and 13 deletions

View File

@ -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)
}
}

View File

@ -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())
}

View File

@ -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)
}