diff --git a/pkg/registry/core/namespace/storage/storage_test.go b/pkg/registry/core/namespace/storage/storage_test.go index fc31c809cc2..a1bfd9e9af8 100644 --- a/pkg/registry/core/namespace/storage/storage_test.go +++ b/pkg/registry/core/namespace/storage/storage_test.go @@ -74,7 +74,7 @@ func TestCreateSetsFields(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() namespace := validNewNamespace() - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) _, err := storage.Create(ctx, namespace, rest.ValidateAllObjectFunc, &metav1.CreateOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -152,7 +152,7 @@ func TestDeleteNamespaceWithIncompleteFinalizers(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -167,6 +167,7 @@ func TestDeleteNamespaceWithIncompleteFinalizers(t *testing.T) { if err := storage.store.Storage.Create(ctx, key, namespace, nil, 0, false); err != nil { t.Fatalf("unexpected error: %v", err) } + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) obj, immediate, err := storage.Delete(ctx, "foo", rest.ValidateAllObjectFunc, nil) if err != nil { t.Fatalf("unexpected error") @@ -188,7 +189,7 @@ func TestUpdateDeletingNamespaceWithIncompleteMetadataFinalizers(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -204,6 +205,7 @@ func TestUpdateDeletingNamespaceWithIncompleteMetadataFinalizers(t *testing.T) { if err := storage.store.Storage.Create(ctx, key, namespace, nil, 0, false); err != nil { t.Fatalf("unexpected error: %v", err) } + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) ns, err := storage.Get(ctx, "foo", &metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -223,7 +225,7 @@ func TestUpdateDeletingNamespaceWithIncompleteSpecFinalizers(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -242,6 +244,7 @@ func TestUpdateDeletingNamespaceWithIncompleteSpecFinalizers(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if _, _, err = storage.Update(ctx, "foo", rest.DefaultUpdatedObjectInfo(ns), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -257,7 +260,7 @@ func TestUpdateDeletingNamespaceWithCompleteFinalizers(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -275,6 +278,7 @@ func TestUpdateDeletingNamespaceWithCompleteFinalizers(t *testing.T) { t.Fatalf("unexpected error: %v", err) } ns.(*api.Namespace).Finalizers = nil + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if _, _, err = storage.Update(ctx, "foo", rest.DefaultUpdatedObjectInfo(ns), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -298,7 +302,7 @@ func TestFinalizeDeletingNamespaceWithCompleteFinalizers(t *testing.T) { defer storage.store.DestroyFunc() defer finalizeStorage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -318,6 +322,7 @@ func TestFinalizeDeletingNamespaceWithCompleteFinalizers(t *testing.T) { t.Fatalf("unexpected error: %v", err) } ns.(*api.Namespace).Spec.Finalizers = nil + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if _, _, err = finalizeStorage.Update(ctx, "foo", rest.DefaultUpdatedObjectInfo(ns), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -341,7 +346,7 @@ func TestFinalizeDeletingNamespaceWithIncompleteMetadataFinalizers(t *testing.T) defer storage.store.DestroyFunc() defer finalizeStorage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -362,6 +367,7 @@ func TestFinalizeDeletingNamespaceWithIncompleteMetadataFinalizers(t *testing.T) t.Fatalf("unexpected error: %v", err) } ns.(*api.Namespace).Spec.Finalizers = nil + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if _, _, err = finalizeStorage.Update(ctx, "foo", rest.DefaultUpdatedObjectInfo(ns), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{}); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -377,7 +383,7 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) { defer server.Terminate(t) defer storage.store.DestroyFunc() key := "namespaces/foo" - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) now := metav1.Now() namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -392,6 +398,7 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) { if err := storage.store.Storage.Create(ctx, key, namespace, nil, 0, false); err != nil { t.Fatalf("unexpected error: %v", err) } + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if _, _, err := storage.Delete(ctx, "foo", rest.ValidateAllObjectFunc, nil); err != nil { t.Errorf("unexpected error: %v", err) } @@ -579,7 +586,7 @@ func TestDeleteWithGCFinalizers(t *testing.T) { for _, test := range tests { key := "namespaces/" + test.name - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) namespace := &api.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: test.name, @@ -595,6 +602,7 @@ func TestDeleteWithGCFinalizers(t *testing.T) { } var obj runtime.Object var err error + ctx = genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace.Name) if obj, _, err = storage.Delete(ctx, test.name, rest.ValidateAllObjectFunc, test.deleteOptions); err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/registry/core/persistentvolume/storage/storage_test.go b/pkg/registry/core/persistentvolume/storage/storage_test.go index 62f15d35e70..c03fa3248a9 100644 --- a/pkg/registry/core/persistentvolume/storage/storage_test.go +++ b/pkg/registry/core/persistentvolume/storage/storage_test.go @@ -169,7 +169,7 @@ func TestUpdateStatus(t *testing.T) { storage, statusStorage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() - ctx := genericapirequest.NewContext() + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) key, _ := storage.KeyFunc(ctx, "foo") pvStart := validNewPersistentVolume("foo") err := storage.Storage.Create(ctx, key, pvStart, nil, 0, false) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go index b981c3a66a9..141bfb17412 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler_test.go @@ -50,6 +50,7 @@ import ( "k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/endpoints/discovery" apirequest "k8s.io/apiserver/pkg/endpoints/request" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" @@ -470,7 +471,10 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { defer server.Terminate(t) crd := multiVersionFixture.DeepCopy() - if _, err := cl.ApiextensionsV1().CustomResourceDefinitions().Create(context.TODO(), crd, metav1.CreateOptions{}); err != nil { + // Create a context with metav1.NamespaceNone as the namespace since multiVersionFixture + // is a cluster scoped CRD. + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceNone) + if _, err := cl.ApiextensionsV1().CustomResourceDefinitions().Create(ctx, crd, metav1.CreateOptions{}); err != nil { t.Fatal(err) } if err := crdInformer.Informer().GetStore().Add(crd); err != nil { @@ -526,12 +530,12 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { u := &unstructured.Unstructured{Object: map[string]interface{}{}} u.SetGroupVersionKind(schema.GroupVersionKind{Group: "stable.example.com", Version: "v1beta1", Kind: "MultiVersion"}) u.SetName("marker") - if item, err := crdInfo.storages["v1beta1"].CustomResource.Create(context.TODO(), u, validateFunc, &metav1.CreateOptions{}); err != nil { + if item, err := crdInfo.storages["v1beta1"].CustomResource.Create(ctx, u, validateFunc, &metav1.CreateOptions{}); err != nil { t.Fatal(err) } else { startResourceVersion = item.(*unstructured.Unstructured).GetResourceVersion() } - if _, _, err := crdInfo.storages["v1beta1"].CustomResource.Delete(context.TODO(), u.GetName(), validateFunc, &metav1.DeleteOptions{}); err != nil { + if _, _, err := crdInfo.storages["v1beta1"].CustomResource.Delete(ctx, u.GetName(), validateFunc, &metav1.DeleteOptions{}); err != nil { t.Fatal(err) } } @@ -545,7 +549,7 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { unstructured.SetNestedField(u.Object, int64(1), "spec", "num") // Create - if item, err := crdInfo.storages[version.Name].CustomResource.Create(context.TODO(), u, validateFunc, &metav1.CreateOptions{}); err != nil { + if item, err := crdInfo.storages[version.Name].CustomResource.Create(ctx, u, validateFunc, &metav1.CreateOptions{}); err != nil { t.Fatal(err) } else if item.GetObjectKind().GroupVersionKind() != expectGVK { t.Errorf("expected create result to be %#v, got %#v", expectGVK, item.GetObjectKind().GroupVersionKind()) @@ -555,14 +559,14 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { // Update u.SetAnnotations(map[string]string{"updated": "true"}) - if item, _, err := crdInfo.storages[version.Name].CustomResource.Update(context.TODO(), u.GetName(), rest.DefaultUpdatedObjectInfo(u), validateFunc, updateValidateFunc, false, &metav1.UpdateOptions{}); err != nil { + if item, _, err := crdInfo.storages[version.Name].CustomResource.Update(ctx, u.GetName(), rest.DefaultUpdatedObjectInfo(u), validateFunc, updateValidateFunc, false, &metav1.UpdateOptions{}); err != nil { t.Fatal(err) } else if item.GetObjectKind().GroupVersionKind() != expectGVK { t.Errorf("expected update result to be %#v, got %#v", expectGVK, item.GetObjectKind().GroupVersionKind()) } // Get - if item, err := crdInfo.storages[version.Name].CustomResource.Get(context.TODO(), u.GetName(), &metav1.GetOptions{}); err != nil { + if item, err := crdInfo.storages[version.Name].CustomResource.Get(ctx, u.GetName(), &metav1.GetOptions{}); err != nil { t.Fatal(err) } else if item.GetObjectKind().GroupVersionKind() != expectGVK { t.Errorf("expected get result to be %#v, got %#v", expectGVK, item.GetObjectKind().GroupVersionKind()) @@ -572,7 +576,7 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { // Allow time to propagate the create into the cache time.Sleep(time.Second) // Get cached - if item, err := crdInfo.storages[version.Name].CustomResource.Get(context.TODO(), u.GetName(), &metav1.GetOptions{ResourceVersion: "0"}); err != nil { + if item, err := crdInfo.storages[version.Name].CustomResource.Get(ctx, u.GetName(), &metav1.GetOptions{ResourceVersion: "0"}); err != nil { t.Fatal(err) } else if item.GetObjectKind().GroupVersionKind() != expectGVK { t.Errorf("expected cached get result to be %#v, got %#v", expectGVK, item.GetObjectKind().GroupVersionKind()) @@ -584,7 +588,7 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { for _, version := range crd.Spec.Versions { expectGVK := schema.GroupVersionKind{Group: "stable.example.com", Version: version.Name, Kind: "MultiVersion"} - if list, err := crdInfo.storages[version.Name].CustomResource.List(context.TODO(), &metainternalversion.ListOptions{}); err != nil { + if list, err := crdInfo.storages[version.Name].CustomResource.List(ctx, &metainternalversion.ListOptions{}); err != nil { t.Fatal(err) } else { for _, item := range list.(*unstructured.UnstructuredList).Items { @@ -596,7 +600,7 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { if enableWatchCache { // List from watch cache - if list, err := crdInfo.storages[version.Name].CustomResource.List(context.TODO(), &metainternalversion.ListOptions{ResourceVersion: "0"}); err != nil { + if list, err := crdInfo.storages[version.Name].CustomResource.List(ctx, &metainternalversion.ListOptions{ResourceVersion: "0"}); err != nil { t.Fatal(err) } else { for _, item := range list.(*unstructured.UnstructuredList).Items { @@ -607,7 +611,7 @@ func testHandlerConversion(t *testing.T, enableWatchCache bool) { } } - watch, err := crdInfo.storages[version.Name].CustomResource.Watch(context.TODO(), &metainternalversion.ListOptions{ResourceVersion: startResourceVersion}) + watch, err := crdInfo.storages[version.Name].CustomResource.Watch(ctx, &metainternalversion.ListOptions{ResourceVersion: startResourceVersion}) if err != nil { t.Fatal(err) }