mirror of
https://github.com/kubernetes/client-go.git
synced 2025-07-20 01:50:06 +00:00
Merge pull request #132004 from alvaroaleman/fix-fasf
ManagedFieldsObjectTracker: Reload scheme Kubernetes-commit: c5c87bde8f0ff405f89ead5aff9f609b42e29b55
This commit is contained in:
commit
e9ca982cec
@ -631,7 +631,7 @@ type managedFieldObjectTracker struct {
|
|||||||
ObjectTracker
|
ObjectTracker
|
||||||
scheme ObjectScheme
|
scheme ObjectScheme
|
||||||
objectConverter runtime.ObjectConvertor
|
objectConverter runtime.ObjectConvertor
|
||||||
mapper meta.RESTMapper
|
mapper func() meta.RESTMapper
|
||||||
typeConverter managedfields.TypeConverter
|
typeConverter managedfields.TypeConverter
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -644,7 +644,9 @@ func NewFieldManagedObjectTracker(scheme *runtime.Scheme, decoder runtime.Decode
|
|||||||
ObjectTracker: NewObjectTracker(scheme, decoder),
|
ObjectTracker: NewObjectTracker(scheme, decoder),
|
||||||
scheme: scheme,
|
scheme: scheme,
|
||||||
objectConverter: scheme,
|
objectConverter: scheme,
|
||||||
mapper: testrestmapper.TestOnlyStaticRESTMapper(scheme),
|
mapper: func() meta.RESTMapper {
|
||||||
|
return testrestmapper.TestOnlyStaticRESTMapper(scheme)
|
||||||
|
},
|
||||||
typeConverter: typeConverter,
|
typeConverter: typeConverter,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -654,7 +656,7 @@ func (t *managedFieldObjectTracker) Create(gvr schema.GroupVersionResource, obj
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
gvk, err := t.mapper.KindFor(gvr)
|
gvk, err := t.mapper().KindFor(gvr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -698,8 +700,9 @@ func (t *managedFieldObjectTracker) Update(gvr schema.GroupVersionResource, obj
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
gvk, err := t.mapper.KindFor(gvr)
|
gvk, err := t.mapper().KindFor(gvr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
println("kindfor")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
mgr, err := t.fieldManagerFor(gvk)
|
mgr, err := t.fieldManagerFor(gvk)
|
||||||
@ -728,7 +731,7 @@ func (t *managedFieldObjectTracker) Patch(gvr schema.GroupVersionResource, patch
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
gvk, err := t.mapper.KindFor(gvr)
|
gvk, err := t.mapper().KindFor(gvr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -757,7 +760,7 @@ func (t *managedFieldObjectTracker) Apply(gvr schema.GroupVersionResource, apply
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
gvk, err := t.mapper.KindFor(gvr)
|
gvk, err := t.mapper().KindFor(gvr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -661,3 +661,25 @@ var configMapTypedSchema = typed.YAMLObject(`types:
|
|||||||
namedType: __untyped_deduced_
|
namedType: __untyped_deduced_
|
||||||
elementRelationship: separable
|
elementRelationship: separable
|
||||||
`)
|
`)
|
||||||
|
|
||||||
|
func TestManagedFieldsObjectTrackerReloadsScheme(t *testing.T) {
|
||||||
|
cmResource := schema.GroupVersionResource{Version: "v1", Resource: "configmaps"}
|
||||||
|
scheme := runtime.NewScheme()
|
||||||
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
|
|
||||||
|
// Create tracker without registered ConfigMap type
|
||||||
|
tracker := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme))
|
||||||
|
|
||||||
|
cm := &v1.ConfigMap{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "test-cm",
|
||||||
|
},
|
||||||
|
Data: map[string]string{"key": "value"},
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register the type in scheme
|
||||||
|
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
||||||
|
|
||||||
|
err := tracker.Create(cmResource, cm, "default", metav1.CreateOptions{FieldManager: "test-manager"})
|
||||||
|
assert.NoError(t, err, "Create should succeed after registering type")
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user