Merge pull request #63349 from smarterclayton/decorator
Automatic merge from submit-queue (batch tested with PRs 63349, 63294). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Decorator for Create should be called on out, not obj Kubernetes-commit: 9e72003b9d3c80a510e5913af432fad740519c32
This commit is contained in:
commit
e9bd8cfeea
|
|
@ -936,223 +936,223 @@
|
|||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/validation",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/validation/path",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/rand",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/uuid",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||
"Rev": "20c1b324426bcedeeae5cee5b7b1ba8016882227"
|
||||
"Rev": "6426d21f392c6d0e710af98bdfe6fb7334b3e11a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/client-go/discovery",
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ func (e *Store) Create(ctx context.Context, obj runtime.Object, createValidation
|
|||
}
|
||||
}
|
||||
if e.Decorator != nil {
|
||||
if err := e.Decorator(obj); err != nil {
|
||||
if err := e.Decorator(out); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -311,6 +311,11 @@ func TestStoreCreate(t *testing.T) {
|
|||
// re-define delete strategy to have graceful delete capability
|
||||
defaultDeleteStrategy := testRESTStrategy{scheme, names.SimpleNameGenerator, true, false, true}
|
||||
registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy}
|
||||
registry.Decorator = func(obj runtime.Object) error {
|
||||
pod := obj.(*example.Pod)
|
||||
pod.Status.Phase = example.PodPhase("Testing")
|
||||
return nil
|
||||
}
|
||||
|
||||
// create the object with denying admission
|
||||
objA, err := registry.Create(testContext, podA, denyCreateValidation, false)
|
||||
|
|
@ -324,6 +329,11 @@ func TestStoreCreate(t *testing.T) {
|
|||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
// verify the decorator was called
|
||||
if objA.(*example.Pod).Status.Phase != example.PodPhase("Testing") {
|
||||
t.Errorf("Decorator was not called: %#v", objA)
|
||||
}
|
||||
|
||||
// get the object
|
||||
checkobj, err := registry.Get(testContext, podA.Name, &metav1.GetOptions{})
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue