mirror of https://github.com/k3s-io/k3s
Merge pull request #70886 from bouk/patch-missing-object
client-go/testing: properly handle Patch actions for missing Objectspull/564/head
commit
df77b72926
|
@ -42,6 +42,7 @@ go_test(
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
||||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||||
],
|
],
|
||||||
|
|
|
@ -131,8 +131,7 @@ func ObjectReaction(tracker ObjectTracker) ReactionFunc {
|
||||||
case PatchActionImpl:
|
case PatchActionImpl:
|
||||||
obj, err := tracker.Get(gvr, ns, action.GetName())
|
obj, err := tracker.Get(gvr, ns, action.GetName())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// object is not registered
|
return true, nil, err
|
||||||
return false, nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
old, err := json.Marshal(obj)
|
old, err := json.Marshal(obj)
|
||||||
|
|
|
@ -30,6 +30,7 @@ import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -258,3 +259,17 @@ func TestWatchAddAfterStop(t *testing.T) {
|
||||||
t.Errorf("test resource creation failed: %v", err)
|
t.Errorf("test resource creation failed: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPatchWithMissingObject(t *testing.T) {
|
||||||
|
nodesResource := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "nodes"}
|
||||||
|
|
||||||
|
scheme := runtime.NewScheme()
|
||||||
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
|
o := NewObjectTracker(scheme, codecs.UniversalDecoder())
|
||||||
|
reaction := ObjectReaction(o)
|
||||||
|
action := NewRootPatchSubresourceAction(nodesResource, "node-1", types.StrategicMergePatchType, []byte(`{}`))
|
||||||
|
handled, node, err := reaction(action)
|
||||||
|
assert.True(t, handled)
|
||||||
|
assert.Nil(t, node)
|
||||||
|
assert.EqualError(t, err, `nodes "node-1" not found`)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue