Merge pull request #88906 from liggitt/dynamic-delete
Dynamic client: plumb context
This commit is contained in:
@@ -93,7 +93,7 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
for _, v := range noxuDefinition.Spec.Versions {
|
||||
noxuResourceClients[v.Name] = newNamespacedCustomResourceVersionedClient(ns, dynamicClient, noxuDefinition, v.Name)
|
||||
|
||||
noxuWatch, err := noxuResourceClients[v.Name].Watch(metav1.ListOptions{})
|
||||
noxuWatch, err := noxuResourceClients[v.Name].Watch(context.TODO(), metav1.ListOptions{})
|
||||
if disabledVersions[v.Name] {
|
||||
if !errors.IsNotFound(err) {
|
||||
t.Errorf("expected the watch operation fail with NotFound for disabled version %s, got error: %v", v.Name, err)
|
||||
@@ -161,7 +161,7 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
// Check get for all versions
|
||||
for version2, noxuResourceClient2 := range noxuResourceClients {
|
||||
// Get test
|
||||
gottenNoxuInstance, err := noxuResourceClient2.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient2.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
|
||||
if disabledVersions[version2] {
|
||||
if !errors.IsNotFound(err) {
|
||||
@@ -179,7 +179,7 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
}
|
||||
|
||||
// List test
|
||||
listWithItem, err := noxuResourceClient2.List(metav1.ListOptions{})
|
||||
listWithItem, err := noxuResourceClient2.List(context.TODO(), metav1.ListOptions{})
|
||||
if disabledVersions[version2] {
|
||||
if !errors.IsNotFound(err) {
|
||||
t.Errorf("expected the list operation fail with NotFound for disabled version %s, got error: %v", version2, err)
|
||||
@@ -208,14 +208,14 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
gottenNoxuInstance = &unstructured.Unstructured{}
|
||||
gottenNoxuInstance.SetName("foo")
|
||||
} else {
|
||||
gottenNoxuInstance, err = noxuResourceClient2.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient2.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
gottenNoxuInstance.Object["updated"] = version2
|
||||
updatedNoxuInstance, err := noxuResourceClient2.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
updatedNoxuInstance, err := noxuResourceClient2.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if disabledVersions[version2] {
|
||||
if !errors.IsNotFound(err) {
|
||||
t.Errorf("expected the update operation fail with NotFound for disabled version %s, got error: %v", version2, err)
|
||||
@@ -265,11 +265,11 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
}
|
||||
|
||||
// Delete test
|
||||
if err := noxuResourceClient.Delete("foo", metav1.NewDeleteOptions(0)); err != nil {
|
||||
if err := noxuResourceClient.Delete(context.TODO(), "foo", *metav1.NewDeleteOptions(0)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
listWithoutItem, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
listWithoutItem, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -305,7 +305,7 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||
}
|
||||
|
||||
// Delete test
|
||||
if err := noxuResourceClient.DeleteCollection(metav1.NewDeleteOptions(0), metav1.ListOptions{}); err != nil {
|
||||
if err := noxuResourceClient.DeleteCollection(context.TODO(), *metav1.NewDeleteOptions(0), metav1.ListOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
@@ -333,7 +333,7 @@ func TestInvalidCRUD(t *testing.T) {
|
||||
for _, v := range noxuDefinition.Spec.Versions {
|
||||
noxuResourceClients[v.Name] = newNamespacedCustomResourceVersionedClient("", dynamicClient, noxuDefinition, v.Name)
|
||||
|
||||
noxuWatch, err := noxuResourceClients[v.Name].Watch(metav1.ListOptions{})
|
||||
noxuWatch, err := noxuResourceClients[v.Name].Watch(context.TODO(), metav1.ListOptions{})
|
||||
if disabledVersions[v.Name] {
|
||||
if !errors.IsNotFound(err) {
|
||||
t.Errorf("expected the watch operation fail with NotFound for disabled version %s, got error: %v", v.Name, err)
|
||||
@@ -354,7 +354,7 @@ func TestInvalidCRUD(t *testing.T) {
|
||||
for version, noxuResourceClient := range noxuResourceClients {
|
||||
// Case when typeless Unstructured object is passed
|
||||
typelessInstance := &unstructured.Unstructured{}
|
||||
if _, err := noxuResourceClient.Create(typelessInstance, metav1.CreateOptions{}); !errors.IsBadRequest(err) {
|
||||
if _, err := noxuResourceClient.Create(context.TODO(), typelessInstance, metav1.CreateOptions{}); !errors.IsBadRequest(err) {
|
||||
t.Errorf("expected badrequest for submitting empty object, got %#v", err)
|
||||
}
|
||||
// Case when apiVersion and Kind would be set up from GVK, but no other objects are present
|
||||
@@ -364,7 +364,7 @@ func TestInvalidCRUD(t *testing.T) {
|
||||
"kind": "WishIHadChosenNoxu",
|
||||
},
|
||||
}
|
||||
if _, err := noxuResourceClient.Create(typedNoBodyInstance, metav1.CreateOptions{}); !errors.IsInvalid(err) {
|
||||
if _, err := noxuResourceClient.Create(context.TODO(), typedNoBodyInstance, metav1.CreateOptions{}); !errors.IsInvalid(err) {
|
||||
t.Errorf("expected invalid request for submitting malformed object, got %#v", err)
|
||||
}
|
||||
}
|
||||
@@ -372,7 +372,7 @@ func TestInvalidCRUD(t *testing.T) {
|
||||
|
||||
func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta1.CustomResourceDefinition, dynamicClient dynamic.Interface) {
|
||||
noxuResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
initialList, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
initialList, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -395,6 +395,7 @@ func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1b
|
||||
t.Fatal(err)
|
||||
}
|
||||
noxuWatch, err := noxuResourceClient.Watch(
|
||||
context.TODO(),
|
||||
metav1.ListOptions{
|
||||
ResourceVersion: initialListListMeta.GetResourceVersion(),
|
||||
FieldSelector: "metadata.name=foo",
|
||||
@@ -449,7 +450,7 @@ func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1b
|
||||
t.Errorf("missing watch event")
|
||||
}
|
||||
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -457,7 +458,7 @@ func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1b
|
||||
t.Errorf("expected %v, got %v", e, a)
|
||||
}
|
||||
|
||||
listWithItem, err := noxuResourceClient.List(metav1.ListOptions{FieldSelector: "metadata.name=foo"})
|
||||
listWithItem, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{FieldSelector: "metadata.name=foo"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -468,14 +469,14 @@ func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1b
|
||||
t.Errorf("expected %v, got %v", e, a)
|
||||
}
|
||||
|
||||
if err := noxuResourceClient.Delete("bar", nil); err != nil {
|
||||
if err := noxuResourceClient.Delete(context.TODO(), "bar", metav1.DeleteOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := noxuResourceClient.Delete("foo", nil); err != nil {
|
||||
if err := noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
listWithoutItem, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
listWithoutItem, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -578,7 +579,7 @@ func TestNoNamespaceReject(t *testing.T) {
|
||||
|
||||
ns := ""
|
||||
noxuResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
initialList, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
initialList, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -640,7 +641,7 @@ func TestSelfLink(t *testing.T) {
|
||||
noxuNamespacedResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
|
||||
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, "foo")
|
||||
createdNoxuInstance, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
createdNoxuInstance, err := noxuNamespacedResourceClient.Create(context.TODO(), noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -659,7 +660,7 @@ func TestSelfLink(t *testing.T) {
|
||||
curletResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, curletDefinition)
|
||||
|
||||
curletInstanceToCreate := fixtures.NewCurletInstance(ns, "foo")
|
||||
createdCurletInstance, err := curletResourceClient.Create(curletInstanceToCreate, metav1.CreateOptions{})
|
||||
createdCurletInstance, err := curletResourceClient.Create(context.TODO(), curletInstanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -686,7 +687,7 @@ func TestPreserveInt(t *testing.T) {
|
||||
noxuNamespacedResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
|
||||
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, "foo")
|
||||
createdNoxuInstance, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
createdNoxuInstance, err := noxuNamespacedResourceClient.Create(context.TODO(), noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -729,14 +730,14 @@ func TestPatch(t *testing.T) {
|
||||
|
||||
t.Logf("Creating foo")
|
||||
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, "foo")
|
||||
_, err = noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
_, err = noxuNamespacedResourceClient.Create(context.TODO(), noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Logf("Patching .num.num2 to 999")
|
||||
patch := []byte(`{"num": {"num2":999}}`)
|
||||
patchedNoxuInstance, err := noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
patchedNoxuInstance, err := noxuNamespacedResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -751,7 +752,7 @@ func TestPatch(t *testing.T) {
|
||||
|
||||
// a patch with no change
|
||||
t.Logf("Patching .num.num2 again to 999")
|
||||
patchedNoxuInstance, err = noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
patchedNoxuInstance, err = noxuNamespacedResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -761,7 +762,7 @@ func TestPatch(t *testing.T) {
|
||||
|
||||
// an empty patch
|
||||
t.Logf("Applying empty patch")
|
||||
patchedNoxuInstance, err = noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{})
|
||||
patchedNoxuInstance, err = noxuNamespacedResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -804,7 +805,7 @@ func TestCrossNamespaceListWatch(t *testing.T) {
|
||||
|
||||
ns := ""
|
||||
noxuResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
initialList, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
initialList, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -817,7 +818,7 @@ func TestCrossNamespaceListWatch(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
noxuWatch, err := noxuResourceClient.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
noxuWatch, err := noxuResourceClient.Watch(context.TODO(), metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -827,7 +828,7 @@ func TestCrossNamespaceListWatch(t *testing.T) {
|
||||
ns1 := "namespace-1"
|
||||
noxuNamespacedResourceClient1 := newNamespacedCustomResourceClient(ns1, dynamicClient, noxuDefinition)
|
||||
instances[ns1] = createInstanceWithNamespaceHelper(t, ns1, "foo1", noxuNamespacedResourceClient1, noxuDefinition)
|
||||
noxuNamespacesWatch1, err := noxuNamespacedResourceClient1.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
noxuNamespacesWatch1, err := noxuNamespacedResourceClient1.Watch(context.TODO(), metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to watch namespace: %s, error: %v", ns1, err)
|
||||
}
|
||||
@@ -836,13 +837,13 @@ func TestCrossNamespaceListWatch(t *testing.T) {
|
||||
ns2 := "namespace-2"
|
||||
noxuNamespacedResourceClient2 := newNamespacedCustomResourceClient(ns2, dynamicClient, noxuDefinition)
|
||||
instances[ns2] = createInstanceWithNamespaceHelper(t, ns2, "foo2", noxuNamespacedResourceClient2, noxuDefinition)
|
||||
noxuNamespacesWatch2, err := noxuNamespacedResourceClient2.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
noxuNamespacesWatch2, err := noxuNamespacedResourceClient2.Watch(context.TODO(), metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to watch namespace: %s, error: %v", ns2, err)
|
||||
}
|
||||
defer noxuNamespacesWatch2.Stop()
|
||||
|
||||
createdList, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||
createdList, err := noxuResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ func TestChangeCRD(t *testing.T) {
|
||||
go func(i int) {
|
||||
defer wg.Done()
|
||||
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, fmt.Sprintf("foo-%d", i))
|
||||
if _, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{}); err != nil {
|
||||
if _, err := noxuNamespacedResourceClient.Create(context.TODO(), noxuInstanceToCreate, metav1.CreateOptions{}); err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
@@ -113,7 +113,7 @@ func TestChangeCRD(t *testing.T) {
|
||||
case <-stopChan:
|
||||
return
|
||||
default:
|
||||
if _, err := noxuNamespacedResourceClient.Get(noxuInstanceToCreate.GetName(), metav1.GetOptions{}); err != nil {
|
||||
if _, err := noxuNamespacedResourceClient.Get(context.TODO(), noxuInstanceToCreate.GetName(), metav1.GetOptions{}); err != nil {
|
||||
t.Error(err)
|
||||
continue
|
||||
}
|
||||
@@ -130,7 +130,7 @@ func TestChangeCRD(t *testing.T) {
|
||||
case <-stopChan:
|
||||
return
|
||||
default:
|
||||
w, err := noxuNamespacedResourceClient.Watch(metav1.ListOptions{})
|
||||
w, err := noxuNamespacedResourceClient.Watch(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error establishing watch: %v", err)
|
||||
continue
|
||||
|
||||
@@ -197,7 +197,7 @@ func testWebhookConverter(t *testing.T, watchCache bool) {
|
||||
defer ctcTearDown()
|
||||
|
||||
// read only object to read at a different version than stored when we need to force conversion
|
||||
marker, err := ctc.versionedClient("marker", "v1beta1").Create(newConversionMultiVersionFixture("marker", "marker", "v1beta1"), metav1.CreateOptions{})
|
||||
marker, err := ctc.versionedClient("marker", "v1beta1").Create(context.TODO(), newConversionMultiVersionFixture("marker", "marker", "v1beta1"), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -216,7 +216,7 @@ func testWebhookConverter(t *testing.T, watchCache bool) {
|
||||
|
||||
// wait until new webhook is called the first time
|
||||
if err := wait.PollImmediate(time.Millisecond*100, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
_, err := ctc.versionedClient(marker.GetNamespace(), "v1alpha1").Get(marker.GetName(), metav1.GetOptions{})
|
||||
_, err := ctc.versionedClient(marker.GetNamespace(), "v1alpha1").Get(context.TODO(), marker.GetName(), metav1.GetOptions{})
|
||||
select {
|
||||
case <-upCh:
|
||||
return true, nil
|
||||
@@ -247,13 +247,13 @@ func validateStorageVersion(t *testing.T, ctc *conversionTestContext) {
|
||||
t.Run(version.Name, func(t *testing.T) {
|
||||
name := "storageversion-" + version.Name
|
||||
client := ctc.versionedClient(ns, version.Name)
|
||||
obj, err := client.Create(newConversionMultiVersionFixture(ns, name, version.Name), metav1.CreateOptions{})
|
||||
obj, err := client.Create(context.TODO(), newConversionMultiVersionFixture(ns, name, version.Name), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ctc.setAndWaitStorageVersion(t, "v1beta2")
|
||||
|
||||
if _, err = client.Get(obj.GetName(), metav1.GetOptions{}); err != nil {
|
||||
if _, err = client.Get(context.TODO(), obj.GetName(), metav1.GetOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ func validateMixedStorageVersions(versions ...string) func(t *testing.T, ctc *co
|
||||
ctc.setAndWaitStorageVersion(t, version)
|
||||
|
||||
name := "mixedstorage-stored-as-" + version
|
||||
obj, err := clients[version].Create(newConversionMultiVersionFixture(ns, name, version), metav1.CreateOptions{})
|
||||
obj, err := clients[version].Create(context.TODO(), newConversionMultiVersionFixture(ns, name, version), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -285,12 +285,12 @@ func validateMixedStorageVersions(versions ...string) func(t *testing.T, ctc *co
|
||||
// Ensure copies of an object have the same fields and values at each custom resource definition version regardless of storage version
|
||||
for clientVersion, client := range clients {
|
||||
t.Run(clientVersion, func(t *testing.T) {
|
||||
o1, err := client.Get(objNames[0], metav1.GetOptions{})
|
||||
o1, err := client.Get(context.TODO(), objNames[0], metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, objName := range objNames[1:] {
|
||||
o2, err := client.Get(objName, metav1.GetOptions{})
|
||||
o2, err := client.Get(context.TODO(), objName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -314,7 +314,7 @@ func validateServed(t *testing.T, ctc *conversionTestContext) {
|
||||
t.Run(version.Name, func(t *testing.T) {
|
||||
name := "served-" + version.Name
|
||||
client := ctc.versionedClient(ns, version.Name)
|
||||
obj, err := client.Create(newConversionMultiVersionFixture(ns, name, version.Name), metav1.CreateOptions{})
|
||||
obj, err := client.Create(context.TODO(), newConversionMultiVersionFixture(ns, name, version.Name), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -340,7 +340,7 @@ func validateNonTrivialConverted(t *testing.T, ctc *conversionTestContext) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
if _, err := client.Create(fixture, metav1.CreateOptions{}); err != nil {
|
||||
if _, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ func validateNonTrivialConverted(t *testing.T, ctc *conversionTestContext) {
|
||||
|
||||
for _, getVersion := range ctc.crd.Spec.Versions {
|
||||
client := ctc.versionedClient(ns, getVersion.Name)
|
||||
obj, err := client.Get(name, metav1.GetOptions{})
|
||||
obj, err := client.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -361,7 +361,7 @@ func validateNonTrivialConverted(t *testing.T, ctc *conversionTestContext) {
|
||||
}
|
||||
|
||||
// send a non-trivial patch to the main resource to verify the oldObject is in the right version
|
||||
if _, err := client.Patch(name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"main":"true"}}}`), metav1.PatchOptions{}); err != nil {
|
||||
if _, err := client.Patch(context.TODO(), name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"main":"true"}}}`), metav1.PatchOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// verify that the right, pruned version is in storage
|
||||
@@ -372,7 +372,7 @@ func validateNonTrivialConverted(t *testing.T, ctc *conversionTestContext) {
|
||||
verifyMultiVersionObject(t, "v1beta1", obj)
|
||||
|
||||
// send a non-trivial patch to the status subresource to verify the oldObject is in the right version
|
||||
if _, err := client.Patch(name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"status":"true"}}}`), metav1.PatchOptions{}, "status"); err != nil {
|
||||
if _, err := client.Patch(context.TODO(), name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"status":"true"}}}`), metav1.PatchOptions{}, "status"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// verify that the right, pruned version is in storage
|
||||
@@ -398,7 +398,7 @@ func validateNonTrivialConvertedList(t *testing.T, ctc *conversionTestContext) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
_, err := client.Create(fixture, metav1.CreateOptions{})
|
||||
_, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -408,7 +408,7 @@ func validateNonTrivialConvertedList(t *testing.T, ctc *conversionTestContext) {
|
||||
for _, listVersion := range ctc.crd.Spec.Versions {
|
||||
t.Run(fmt.Sprintf("listing objects as %s", listVersion.Name), func(t *testing.T) {
|
||||
client := ctc.versionedClient(ns, listVersion.Name)
|
||||
obj, err := client.List(metav1.ListOptions{})
|
||||
obj, err := client.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -443,7 +443,7 @@ func validateStoragePruning(t *testing.T, ctc *conversionTestContext) {
|
||||
if err := unstructured.SetNestedField(fixture.Object, "foo", "garbage"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err := client.Create(fixture, metav1.CreateOptions{})
|
||||
_, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -471,7 +471,7 @@ func validateStoragePruning(t *testing.T, ctc *conversionTestContext) {
|
||||
|
||||
for _, getVersion := range ctc.crd.Spec.Versions {
|
||||
client := ctc.versionedClient(ns, getVersion.Name)
|
||||
obj, err := client.Get(name, metav1.GetOptions{})
|
||||
obj, err := client.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -496,7 +496,7 @@ func validateObjectMetaMutation(t *testing.T, ctc *conversionTestContext) {
|
||||
ctc.setAndWaitStorageVersion(t, storageVersion)
|
||||
name := "objectmeta-mutation-" + storageVersion
|
||||
client := ctc.versionedClient(ns, storageVersion)
|
||||
obj, err := client.Create(newConversionMultiVersionFixture(ns, name, storageVersion), metav1.CreateOptions{})
|
||||
obj, err := client.Create(context.TODO(), newConversionMultiVersionFixture(ns, name, storageVersion), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -504,7 +504,7 @@ func validateObjectMetaMutation(t *testing.T, ctc *conversionTestContext) {
|
||||
|
||||
t.Logf("Getting object in other version v1beta2")
|
||||
client = ctc.versionedClient(ns, "v1beta2")
|
||||
obj, err = client.Get(name, metav1.GetOptions{})
|
||||
obj, err = client.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -513,7 +513,7 @@ func validateObjectMetaMutation(t *testing.T, ctc *conversionTestContext) {
|
||||
t.Logf("Creating object in non-storage version")
|
||||
name = "objectmeta-mutation-v1beta2"
|
||||
client = ctc.versionedClient(ns, "v1beta2")
|
||||
obj, err = client.Create(newConversionMultiVersionFixture(ns, name, "v1beta2"), metav1.CreateOptions{})
|
||||
obj, err = client.Create(context.TODO(), newConversionMultiVersionFixture(ns, name, "v1beta2"), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -521,7 +521,7 @@ func validateObjectMetaMutation(t *testing.T, ctc *conversionTestContext) {
|
||||
|
||||
t.Logf("Listing objects in non-storage version")
|
||||
client = ctc.versionedClient(ns, "v1beta2")
|
||||
list, err := client.List(metav1.ListOptions{})
|
||||
list, err := client.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -582,7 +582,7 @@ func validateUIDMutation(t *testing.T, ctc *conversionTestContext) {
|
||||
ctc.setAndWaitStorageVersion(t, storageVersion)
|
||||
name := "uid-mutation-" + storageVersion
|
||||
client := ctc.versionedClient(ns, "v1beta2")
|
||||
obj, err := client.Create(newConversionMultiVersionFixture(ns, name, "v1beta2"), metav1.CreateOptions{})
|
||||
obj, err := client.Create(context.TODO(), newConversionMultiVersionFixture(ns, name, "v1beta2"), metav1.CreateOptions{})
|
||||
if err == nil {
|
||||
t.Fatalf("expected creation error, but got: %v", obj)
|
||||
} else if !strings.Contains(err.Error(), "must have the same UID") {
|
||||
@@ -607,7 +607,7 @@ func validateDefaulting(t *testing.T, ctc *conversionTestContext) {
|
||||
if err := unstructured.SetNestedField(fixture.Object, map[string]interface{}{}, "defaults"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
created, err := client.Create(fixture, metav1.CreateOptions{})
|
||||
created, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -654,7 +654,7 @@ func validateDefaulting(t *testing.T, ctc *conversionTestContext) {
|
||||
continue
|
||||
}
|
||||
|
||||
got, err := ctc.versionedClient(ns, v.Name).Get(created.GetName(), metav1.GetOptions{})
|
||||
got, err := ctc.versionedClient(ns, v.Name).Get(context.TODO(), created.GetName(), metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -681,7 +681,7 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
|
||||
clients := ctc.versionedClients(ns)
|
||||
var err error
|
||||
// storage version is v1beta1, so this skips conversion
|
||||
obj, err := clients["v1beta1"].Create(newConversionMultiVersionFixture(ns, id, "v1beta1"), metav1.CreateOptions{})
|
||||
obj, err := clients["v1beta1"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta1"), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -689,19 +689,19 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
|
||||
t.Run(verb, func(t *testing.T) {
|
||||
switch verb {
|
||||
case "get":
|
||||
_, err = clients["v1beta2"].Get(obj.GetName(), metav1.GetOptions{})
|
||||
_, err = clients["v1beta2"].Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
|
||||
case "list":
|
||||
_, err = clients["v1beta2"].List(metav1.ListOptions{})
|
||||
_, err = clients["v1beta2"].List(context.TODO(), metav1.ListOptions{})
|
||||
case "create":
|
||||
_, err = clients["v1beta2"].Create(newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{})
|
||||
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{})
|
||||
case "update":
|
||||
_, err = clients["v1beta2"].Update(obj, metav1.UpdateOptions{})
|
||||
_, err = clients["v1beta2"].Update(context.TODO(), obj, metav1.UpdateOptions{})
|
||||
case "patch":
|
||||
_, err = clients["v1beta2"].Patch(obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{})
|
||||
_, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{})
|
||||
case "delete":
|
||||
err = clients["v1beta2"].Delete(obj.GetName(), &metav1.DeleteOptions{})
|
||||
err = clients["v1beta2"].Delete(context.TODO(), obj.GetName(), metav1.DeleteOptions{})
|
||||
case "deletecollection":
|
||||
err = clients["v1beta2"].DeleteCollection(&metav1.DeleteOptions{}, metav1.ListOptions{})
|
||||
err = clients["v1beta2"].DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
@@ -716,11 +716,11 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
|
||||
t.Run(fmt.Sprintf("%s-%s", subresource, verb), func(t *testing.T) {
|
||||
switch verb {
|
||||
case "create":
|
||||
_, err = clients["v1beta2"].Create(newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{}, subresource)
|
||||
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{}, subresource)
|
||||
case "update":
|
||||
_, err = clients["v1beta2"].Update(obj, metav1.UpdateOptions{}, subresource)
|
||||
_, err = clients["v1beta2"].Update(context.TODO(), obj, metav1.UpdateOptions{}, subresource)
|
||||
case "patch":
|
||||
_, err = clients["v1beta2"].Patch(obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{}, subresource)
|
||||
_, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{}, subresource)
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
@@ -983,7 +983,7 @@ func (c *conversionTestContext) setAndWaitStorageVersion(t *testing.T, version s
|
||||
// create probe object. Version should be the default one to avoid webhook calls during test setup.
|
||||
client := c.versionedClient("probe", "v1beta1")
|
||||
name := fmt.Sprintf("probe-%v", uuid.NewUUID())
|
||||
storageProbe, err := client.Create(newConversionMultiVersionFixture("probe", name, "v1beta1"), metav1.CreateOptions{})
|
||||
storageProbe, err := client.Create(context.TODO(), newConversionMultiVersionFixture("probe", name, "v1beta1"), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -991,7 +991,7 @@ func (c *conversionTestContext) setAndWaitStorageVersion(t *testing.T, version s
|
||||
// update object continuously and wait for etcd to have the target storage version.
|
||||
c.waitForStorageVersion(t, version, c.versionedClient(storageProbe.GetNamespace(), "v1beta1"), storageProbe)
|
||||
|
||||
err = client.Delete(name, &metav1.DeleteOptions{})
|
||||
err = client.Delete(context.TODO(), name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -1014,7 +1014,7 @@ func (c *conversionTestContext) setStorageVersion(t *testing.T, version string)
|
||||
|
||||
func (c *conversionTestContext) waitForStorageVersion(t *testing.T, version string, versionedClient dynamic.ResourceInterface, obj *unstructured.Unstructured) *unstructured.Unstructured {
|
||||
if err := c.etcdObjectReader.WaitForStorageVersion(version, obj.GetNamespace(), obj.GetName(), 30*time.Second, func() {
|
||||
if _, err := versionedClient.Patch(obj.GetName(), types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}); err != nil {
|
||||
if _, err := versionedClient.Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}); err != nil {
|
||||
t.Fatalf("failed to update object: %v", err)
|
||||
}
|
||||
}); err != nil {
|
||||
@@ -1047,7 +1047,7 @@ func (c *conversionTestContext) waitForServed(t *testing.T, version string, serv
|
||||
timeout := 30 * time.Second
|
||||
waitCh := time.After(timeout)
|
||||
for {
|
||||
obj, err := versionedClient.Get(obj.GetName(), metav1.GetOptions{})
|
||||
obj, err := versionedClient.Get(context.TODO(), obj.GetName(), metav1.GetOptions{})
|
||||
if (err == nil && served) || (errors.IsNotFound(err) && served == false) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
}
|
||||
unstructured.SetNestedField(foo.Object, "a", "spec", "a")
|
||||
unstructured.SetNestedField(foo.Object, "b", "status", "b")
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -279,7 +279,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
|
||||
t.Logf("Updating status and expecting 'a' and 'b' to show up.")
|
||||
unstructured.SetNestedField(foo.Object, map[string]interface{}{}, "status")
|
||||
if foo, err = fooClient.UpdateStatus(foo, metav1.UpdateOptions{}); err != nil {
|
||||
if foo, err = fooClient.UpdateStatus(context.TODO(), foo, metav1.UpdateOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
mustExist(foo.Object, [][]string{{"spec", "a"}, {"spec", "b"}, {"status", "a"}, {"status", "b"}})
|
||||
@@ -289,7 +289,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
|
||||
t.Logf("wait until GET sees 'c' in both status and spec")
|
||||
if err := wait.PollImmediate(100*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
obj, err := fooClient.Get(foo.GetName(), metav1.GetOptions{})
|
||||
obj, err := fooClient.Get(context.TODO(), foo.GetName(), metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -306,7 +306,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
|
||||
t.Logf("wait until GET sees 'c' in both status and spec of cached get")
|
||||
if err := wait.PollImmediate(100*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
obj, err := fooClient.Get(foo.GetName(), metav1.GetOptions{ResourceVersion: "0"})
|
||||
obj, err := fooClient.Get(context.TODO(), foo.GetName(), metav1.GetOptions{ResourceVersion: "0"})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -322,7 +322,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
mustExist(foo.Object, [][]string{{"spec", "a"}, {"spec", "b"}, {"spec", "c"}, {"status", "a"}, {"status", "b"}, {"status", "c"}})
|
||||
|
||||
t.Logf("verify LIST sees 'c' in both status and spec")
|
||||
foos, err := fooClient.List(metav1.ListOptions{})
|
||||
foos, err := fooClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -331,7 +331,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
}
|
||||
|
||||
t.Logf("verify LIST from cache sees 'c' in both status and spec")
|
||||
foos, err = fooClient.List(metav1.ListOptions{ResourceVersion: "0"})
|
||||
foos, err = fooClient.List(context.TODO(), metav1.ListOptions{ResourceVersion: "0"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -344,7 +344,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
// The contents of the watch cache are seen by list with rv=0, which is tested by this test.
|
||||
if !watchCache {
|
||||
t.Logf("verify WATCH sees 'c' in both status and spec")
|
||||
w, err := fooClient.Watch(metav1.ListOptions{ResourceVersion: initialResourceVersion})
|
||||
w, err := fooClient.Watch(context.TODO(), metav1.ListOptions{ResourceVersion: initialResourceVersion})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -369,7 +369,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
addDefault("v1beta1", "c", "C")
|
||||
removeDefault("v1beta2", "c")
|
||||
if err := wait.PollImmediate(100*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
obj, err := fooClient.Get(foo.GetName(), metav1.GetOptions{})
|
||||
obj, err := fooClient.Get(context.TODO(), foo.GetName(), metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -383,7 +383,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
mustNotExist(foo.Object, [][]string{{"spec", "c"}, {"status", "c"}})
|
||||
|
||||
t.Logf("Updating status, expecting 'c' to be set in status only")
|
||||
if foo, err = fooClient.UpdateStatus(foo, metav1.UpdateOptions{}); err != nil {
|
||||
if foo, err = fooClient.UpdateStatus(context.TODO(), foo, metav1.UpdateOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
mustExist(foo.Object, [][]string{{"spec", "a"}, {"spec", "b"}, {"status", "a"}, {"status", "b"}, {"status", "c"}})
|
||||
@@ -394,7 +394,7 @@ func testDefaulting(t *testing.T, watchCache bool) {
|
||||
removeDefault("v1beta1", "b")
|
||||
removeDefault("v1beta1", "c")
|
||||
if err := wait.PollImmediate(100*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
obj, err := fooClient.Get(foo.GetName(), metav1.GetOptions{})
|
||||
obj, err := fooClient.Get(context.TODO(), foo.GetName(), metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -623,7 +623,7 @@ func TestCustomResourceDefaultingOfMetaFields(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
returnedFoo, err = fooClient.Create(returnedFoo, metav1.CreateOptions{})
|
||||
returnedFoo, err = fooClient.Create(context.TODO(), returnedFoo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ func TestFinalization(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
uid := createdNoxuInstance.GetUID()
|
||||
err = noxuResourceClient.Delete(name, &metav1.DeleteOptions{
|
||||
err = noxuResourceClient.Delete(context.TODO(), name, metav1.DeleteOptions{
|
||||
Preconditions: &metav1.Preconditions{
|
||||
UID: &uid,
|
||||
},
|
||||
@@ -59,13 +59,13 @@ func TestFinalization(t *testing.T) {
|
||||
|
||||
// Deleting something with a finalizer sets deletion timestamp to a not-nil value but does not
|
||||
// remove the object from the API server. Here we read it to confirm this.
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
require.NotNil(t, gottenNoxuInstance.GetDeletionTimestamp())
|
||||
|
||||
// Trying to delete it again to confirm it will not remove the object because finalizer is still there.
|
||||
err = noxuResourceClient.Delete(name, &metav1.DeleteOptions{
|
||||
err = noxuResourceClient.Delete(context.TODO(), name, metav1.DeleteOptions{
|
||||
Preconditions: &metav1.Preconditions{
|
||||
UID: &uid,
|
||||
},
|
||||
@@ -77,19 +77,19 @@ func TestFinalization(t *testing.T) {
|
||||
// object will be deleted as part of the finalizer update.
|
||||
for {
|
||||
gottenNoxuInstance.SetFinalizers(nil)
|
||||
_, err = noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
if !errors.IsConflict(err) {
|
||||
require.NoError(t, err) // Fail on unexpected error
|
||||
}
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// Check that the object is actually gone.
|
||||
_, err = noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
_, err = noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.Error(t, err)
|
||||
require.True(t, errors.IsNotFound(err), "%#v", err)
|
||||
}
|
||||
@@ -116,7 +116,7 @@ func TestFinalizationAndDeletion(t *testing.T) {
|
||||
|
||||
// Delete a CR. Because there's a finalizer, it will not get deleted now.
|
||||
uid := createdNoxuInstance.GetUID()
|
||||
err = noxuResourceClient.Delete(name, &metav1.DeleteOptions{
|
||||
err = noxuResourceClient.Delete(context.TODO(), name, metav1.DeleteOptions{
|
||||
Preconditions: &metav1.Preconditions{
|
||||
UID: &uid,
|
||||
},
|
||||
@@ -124,7 +124,7 @@ func TestFinalizationAndDeletion(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// Check is the CR scheduled for deletion.
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, gottenNoxuInstance.GetDeletionTimestamp())
|
||||
|
||||
@@ -132,26 +132,26 @@ func TestFinalizationAndDeletion(t *testing.T) {
|
||||
fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient)
|
||||
|
||||
// Check is CR still there after the CRD deletion.
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
// Update the CR to remove the finalizer.
|
||||
for {
|
||||
gottenNoxuInstance.SetFinalizers(nil)
|
||||
_, err = noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
if !errors.IsConflict(err) {
|
||||
require.NoError(t, err) // Fail on unexpected error
|
||||
}
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// Verify the CR is gone.
|
||||
// It should return the NonFound error.
|
||||
_, err = noxuResourceClient.Get(name, metav1.GetOptions{})
|
||||
_, err = noxuResourceClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
if !errors.IsNotFound(err) {
|
||||
t.Fatalf("unable to delete cr: %v", err)
|
||||
}
|
||||
|
||||
@@ -462,11 +462,11 @@ func isWatchCachePrimed(crd *apiextensionsv1.CustomResourceDefinition, dynamicCl
|
||||
"spec": map[string]interface{}{},
|
||||
},
|
||||
}
|
||||
createdInstance, err := resourceClient.Create(instance, metav1.CreateOptions{})
|
||||
createdInstance, err := resourceClient.Create(context.TODO(), instance, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
err = resourceClient.Delete(createdInstance.GetName(), nil)
|
||||
err = resourceClient.Delete(context.TODO(), createdInstance.GetName(), metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
@@ -480,6 +480,7 @@ func isWatchCachePrimed(crd *apiextensionsv1.CustomResourceDefinition, dynamicCl
|
||||
// delivered to any future watch with resourceVersion=0.
|
||||
for _, v := range versions {
|
||||
noxuWatch, err := resourceClientForVersion(crd, dynamicClientSet, ns, v).Watch(
|
||||
context.TODO(),
|
||||
metav1.ListOptions{ResourceVersion: createdInstance.GetResourceVersion()})
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
||||
@@ -39,7 +39,7 @@ func instantiateCustomResource(t *testing.T, instanceToCreate *unstructured.Unst
|
||||
}
|
||||
|
||||
func instantiateVersionedCustomResource(t *testing.T, instanceToCreate *unstructured.Unstructured, client dynamic.ResourceInterface, definition *apiextensionsv1beta1.CustomResourceDefinition, version string) (*unstructured.Unstructured, error) {
|
||||
createdInstance, err := client.Create(instanceToCreate, metav1.CreateOptions{})
|
||||
createdInstance, err := client.Create(context.TODO(), instanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Logf("%#v", createdInstance)
|
||||
return nil, err
|
||||
|
||||
@@ -143,7 +143,7 @@ func TestListTypes(t *testing.T) {
|
||||
if err := yaml.Unmarshal([]byte(listTypeResourceInstance), &invalidInstance.Object); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, createErr := fooClient.Create(invalidInstance, metav1.CreateOptions{})
|
||||
_, createErr := fooClient.Create(context.TODO(), invalidInstance, metav1.CreateOptions{})
|
||||
if createErr == nil {
|
||||
t.Fatalf("Expected validation errors, but did not get one")
|
||||
}
|
||||
@@ -170,7 +170,7 @@ func TestListTypes(t *testing.T) {
|
||||
for _, invalid := range invalidListTypeFields {
|
||||
unstructured.RemoveNestedField(validInstance.Object, invalid)
|
||||
}
|
||||
validInstance, err = fooClient.Create(validInstance, metav1.CreateOptions{})
|
||||
validInstance, err = fooClient.Create(context.TODO(), validInstance, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -183,7 +183,7 @@ func TestListTypes(t *testing.T) {
|
||||
l = append(l, l[0])
|
||||
modifiedInstance.Object[valid] = l
|
||||
}
|
||||
_, err = fooClient.Update(modifiedInstance, metav1.UpdateOptions{})
|
||||
_, err = fooClient.Update(context.TODO(), modifiedInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
t.Fatalf("Expected validation errors, but did not get one")
|
||||
}
|
||||
@@ -211,7 +211,7 @@ func TestListTypes(t *testing.T) {
|
||||
|
||||
t.Logf("Updating again with invalid values, eventually successfully due to ratcheting logic")
|
||||
err = wait.PollImmediate(time.Millisecond*100, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
_, err = fooClient.Update(modifiedInstance, metav1.UpdateOptions{})
|
||||
_, err = fooClient.Update(context.TODO(), modifiedInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
return true, err
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package integration
|
||||
|
||||
import (
|
||||
"context"
|
||||
"path"
|
||||
"reflect"
|
||||
"strings"
|
||||
@@ -181,7 +182,7 @@ func TestInvalidObjectMetaInStorage(t *testing.T) {
|
||||
|
||||
t.Logf("Checking that invalid objects can be deleted")
|
||||
noxuResourceClient := newNamespacedCustomResourceClient("default", dynamicClient, noxuDefinition)
|
||||
if err := noxuResourceClient.Delete("foo", &metav1.DeleteOptions{}); err != nil {
|
||||
if err := noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{}); err != nil {
|
||||
t.Fatalf("Unexpected delete error %v", err)
|
||||
}
|
||||
if _, err := etcdclient.Put(ctx, key, string(val)); err != nil {
|
||||
@@ -189,7 +190,7 @@ func TestInvalidObjectMetaInStorage(t *testing.T) {
|
||||
}
|
||||
|
||||
t.Logf("Checking that ObjectMeta is pruned from unknown fields")
|
||||
obj, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
obj, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
@@ -249,7 +250,7 @@ func TestInvalidObjectMetaInStorage(t *testing.T) {
|
||||
|
||||
t.Logf("Trying to fail on updating with invalid labels")
|
||||
unstructured.SetNestedField(obj.Object, "changed", "metadata", "labels", "something")
|
||||
if got, err := noxuResourceClient.Update(obj, metav1.UpdateOptions{}); err == nil {
|
||||
if got, err := noxuResourceClient.Update(context.TODO(), obj, metav1.UpdateOptions{}); err == nil {
|
||||
objJSON, _ := json.Marshal(obj.Object)
|
||||
gotJSON, _ := json.Marshal(got.Object)
|
||||
t.Fatalf("Expected update error, but didn't get one\nin: %s\nresponse: %v", string(objJSON), string(gotJSON))
|
||||
@@ -257,7 +258,7 @@ func TestInvalidObjectMetaInStorage(t *testing.T) {
|
||||
|
||||
t.Logf("Trying to fail on updating with invalid embedded label")
|
||||
unstructured.SetNestedField(obj.Object, "fixed", "metadata", "labels", "invalid")
|
||||
if got, err := noxuResourceClient.Update(obj, metav1.UpdateOptions{}); err == nil {
|
||||
if got, err := noxuResourceClient.Update(context.TODO(), obj, metav1.UpdateOptions{}); err == nil {
|
||||
objJSON, _ := json.Marshal(obj.Object)
|
||||
gotJSON, _ := json.Marshal(got.Object)
|
||||
t.Fatalf("Expected update error, but didn't get one\nin: %s\nresponse: %v", string(objJSON), string(gotJSON))
|
||||
@@ -265,13 +266,13 @@ func TestInvalidObjectMetaInStorage(t *testing.T) {
|
||||
|
||||
t.Logf("Fixed all labels and update should work")
|
||||
unstructured.SetNestedField(obj.Object, "fixed", "embedded", "metadata", "labels", "invalid")
|
||||
if _, err := noxuResourceClient.Update(obj, metav1.UpdateOptions{}); err != nil {
|
||||
if _, err := noxuResourceClient.Update(context.TODO(), obj, metav1.UpdateOptions{}); err != nil {
|
||||
t.Errorf("Unexpected update error with fixed labels: %v", err)
|
||||
}
|
||||
|
||||
t.Logf("Trying to fail on updating with wrongly-typed embedded label")
|
||||
unstructured.SetNestedField(obj.Object, int64(42), "embedded", "metadata", "labels", "invalid")
|
||||
if got, err := noxuResourceClient.Update(obj, metav1.UpdateOptions{}); err == nil {
|
||||
if got, err := noxuResourceClient.Update(context.TODO(), obj, metav1.UpdateOptions{}); err == nil {
|
||||
objJSON, _ := json.Marshal(obj.Object)
|
||||
gotJSON, _ := json.Marshal(got.Object)
|
||||
t.Fatalf("Expected update error, but didn't get one\nin: %s\nresponse: %v", string(objJSON), string(gotJSON))
|
||||
@@ -452,7 +453,7 @@ func TestEmbeddedResources(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
unstructured.SetNestedField(foo.Object, "foo", "metadata", "name")
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -474,7 +475,7 @@ func TestEmbeddedResources(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
unstructured.SetNestedField(wronglyTyped.Object, "invalid", "metadata", "name")
|
||||
_, err = fooClient.Create(wronglyTyped, metav1.CreateOptions{})
|
||||
_, err = fooClient.Create(context.TODO(), wronglyTyped, metav1.CreateOptions{})
|
||||
if err == nil {
|
||||
t.Fatal("Expected creation to fail, but didn't")
|
||||
}
|
||||
@@ -495,7 +496,7 @@ func TestEmbeddedResources(t *testing.T) {
|
||||
}
|
||||
unstructured.SetNestedField(invalid.Object, "invalid", "metadata", "name")
|
||||
unstructured.SetNestedField(invalid.Object, "x y", "metadata", "labels", "foo")
|
||||
_, err = fooClient.Create(invalid, metav1.CreateOptions{})
|
||||
_, err = fooClient.Create(context.TODO(), invalid, metav1.CreateOptions{})
|
||||
if err == nil {
|
||||
t.Fatal("Expected creation to fail, but didn't")
|
||||
}
|
||||
@@ -522,7 +523,7 @@ func TestEmbeddedResources(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
unstructured.SetNestedField(valid.Object, "valid", "metadata", "name")
|
||||
valid, err = fooClient.Create(valid, metav1.CreateOptions{})
|
||||
valid, err = fooClient.Create(context.TODO(), valid, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -533,7 +534,7 @@ func TestEmbeddedResources(t *testing.T) {
|
||||
valid.Object[k] = v
|
||||
}
|
||||
unstructured.SetNestedField(valid.Object, "x y", "metadata", "labels", "foo")
|
||||
if _, err = fooClient.Update(valid, metav1.UpdateOptions{}); err == nil {
|
||||
if _, err = fooClient.Update(context.TODO(), valid, metav1.UpdateOptions{}); err == nil {
|
||||
t.Fatal("Expected update error, but got none")
|
||||
}
|
||||
t.Logf("Update failed with: %v", err)
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package integration
|
||||
|
||||
import (
|
||||
"context"
|
||||
"path"
|
||||
"reflect"
|
||||
"strings"
|
||||
@@ -209,7 +210,7 @@ func TestPruningCreate(t *testing.T) {
|
||||
unstructured.SetNestedField(foo.Object, float64(42.0), "beta")
|
||||
unstructured.SetNestedField(foo.Object, "bar", "metadata", "unspecified")
|
||||
unstructured.SetNestedField(foo.Object, "bar", "metadata", "labels", "foo")
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -256,7 +257,7 @@ func TestPruningStatus(t *testing.T) {
|
||||
if err := yaml.Unmarshal([]byte(pruningFooInstance), &foo.Object); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -267,7 +268,7 @@ func TestPruningStatus(t *testing.T) {
|
||||
unstructured.SetNestedField(foo.Object, float64(42.0), "status", "beta")
|
||||
unstructured.SetNestedField(foo.Object, "bar", "metadata", "unspecified")
|
||||
|
||||
foo, err = fooClient.UpdateStatus(foo, metav1.UpdateOptions{})
|
||||
foo, err = fooClient.UpdateStatus(context.TODO(), foo, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to update status: %v", err)
|
||||
}
|
||||
@@ -368,7 +369,7 @@ func TestPruningFromStorage(t *testing.T) {
|
||||
|
||||
t.Logf("Checking that CustomResource is pruned from unknown fields")
|
||||
fooClient := dynamicClient.Resource(schema.GroupVersionResource{crd.Spec.Group, crd.Spec.Version, crd.Spec.Names.Plural})
|
||||
foo, err := fooClient.Get("foo", metav1.GetOptions{})
|
||||
foo, err := fooClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -413,7 +414,7 @@ func TestPruningPatch(t *testing.T) {
|
||||
if err := yaml.Unmarshal([]byte(pruningFooInstance), &foo.Object); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -421,7 +422,7 @@ func TestPruningPatch(t *testing.T) {
|
||||
|
||||
// a patch with a change
|
||||
patch := []byte(`{"alpha": "abc", "beta": 42.0, "unspecified": "bar", "metadata": {"unspecified": "bar", "labels":{"foo":"bar"}}}`)
|
||||
if foo, err = fooClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{}); err != nil {
|
||||
if foo, err = fooClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{}); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
@@ -484,7 +485,7 @@ func TestPruningCreatePreservingUnknownFields(t *testing.T) {
|
||||
"preserving": map[string]interface{}{"unspecified": "bar"},
|
||||
}, "preserving")
|
||||
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
@@ -551,7 +552,7 @@ func TestPruningEmbeddedResources(t *testing.T) {
|
||||
if err := yaml.Unmarshal([]byte(fooSchemaEmbeddedResourceInstance), &foo.Object); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
foo, err = fooClient.Create(foo, metav1.CreateOptions{})
|
||||
foo, err = fooClient.Create(context.TODO(), foo, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("Unable to create CR: %v", err)
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ func TestMultipleResourceInstances(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
noxuNamespacedResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
noxuList, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
noxuList, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -63,7 +63,7 @@ func TestMultipleResourceInstances(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
noxuNamespacedWatch, err := noxuNamespacedResourceClient.Watch(metav1.ListOptions{ResourceVersion: noxuListListMeta.GetResourceVersion()})
|
||||
noxuNamespacedWatch, err := noxuNamespacedResourceClient.Watch(context.TODO(), metav1.ListOptions{ResourceVersion: noxuListListMeta.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func TestMultipleResourceInstances(t *testing.T) {
|
||||
}
|
||||
|
||||
for key, val := range instances {
|
||||
gottenNoxuInstace, err := noxuNamespacedResourceClient.Get(key, metav1.GetOptions{})
|
||||
gottenNoxuInstace, err := noxuNamespacedResourceClient.Get(context.TODO(), key, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -115,7 +115,7 @@ func TestMultipleResourceInstances(t *testing.T) {
|
||||
t.Errorf("expected %v, got %v", e, a)
|
||||
}
|
||||
}
|
||||
listWithItem, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
listWithItem, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -128,11 +128,11 @@ func TestMultipleResourceInstances(t *testing.T) {
|
||||
}
|
||||
}
|
||||
for key := range instances {
|
||||
if err := noxuNamespacedResourceClient.Delete(key, nil); err != nil {
|
||||
if err := noxuNamespacedResourceClient.Delete(context.TODO(), key, metav1.DeleteOptions{}); err != nil {
|
||||
t.Fatalf("unable to delete %s:%v", key, err)
|
||||
}
|
||||
}
|
||||
listWithoutItem, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
listWithoutItem, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -183,7 +183,7 @@ func TestMultipleRegistration(t *testing.T) {
|
||||
t.Fatalf("unable to create noxu Instance:%v", err)
|
||||
}
|
||||
|
||||
gottenNoxuInstance, err := noxuNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -201,7 +201,7 @@ func TestMultipleRegistration(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create noxu Instance:%v", err)
|
||||
}
|
||||
gottenCurletInstance, err := curletNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{})
|
||||
gottenCurletInstance, err := curletNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -210,7 +210,7 @@ func TestMultipleRegistration(t *testing.T) {
|
||||
}
|
||||
|
||||
// now re-GET noxu
|
||||
gottenNoxuInstance2, err := noxuNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{})
|
||||
gottenNoxuInstance2, err := noxuNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -243,10 +243,10 @@ func TestDeRegistrationAndReRegistration(t *testing.T) {
|
||||
if _, err := apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(context.TODO(), noxuDefinition.Name, metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
t.Fatalf("expected a NotFound error, got:%v", err)
|
||||
}
|
||||
if _, err = noxuNamespacedResourceClient.List(metav1.ListOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
if _, err = noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
t.Fatalf("expected a NotFound error, got:%v", err)
|
||||
}
|
||||
if _, err = noxuNamespacedResourceClient.Get("foo", metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
if _, err = noxuNamespacedResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
t.Fatalf("expected a NotFound error, got:%v", err)
|
||||
}
|
||||
}()
|
||||
@@ -260,11 +260,11 @@ func TestDeRegistrationAndReRegistration(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
noxuNamespacedResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||
initialList, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
initialList, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err = noxuNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
if _, err = noxuNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
t.Fatalf("expected a NotFound error, got:%v", err)
|
||||
}
|
||||
if e, a := 0, len(initialList.Items); e != a {
|
||||
@@ -274,14 +274,14 @@ func TestDeRegistrationAndReRegistration(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
gottenNoxuInstance, err := noxuNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if e, a := createdNoxuInstance, gottenNoxuInstance; !reflect.DeepEqual(e, a) {
|
||||
t.Fatalf("expected %v, got %v", e, a)
|
||||
}
|
||||
listWithItem, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
listWithItem, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -292,13 +292,13 @@ func TestDeRegistrationAndReRegistration(t *testing.T) {
|
||||
t.Fatalf("expected %v, got %v", e, a)
|
||||
}
|
||||
|
||||
if err := noxuNamespacedResourceClient.Delete(sameInstanceName, nil); err != nil {
|
||||
if err := noxuNamespacedResourceClient.Delete(context.TODO(), sameInstanceName, metav1.DeleteOptions{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err = noxuNamespacedResourceClient.Get(sameInstanceName, metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
if _, err = noxuNamespacedResourceClient.Get(context.TODO(), sameInstanceName, metav1.GetOptions{}); err == nil || !errors.IsNotFound(err) {
|
||||
t.Fatalf("expected a NotFound error, got:%v", err)
|
||||
}
|
||||
listWithoutItem, err := noxuNamespacedResourceClient.List(metav1.ListOptions{})
|
||||
listWithoutItem, err := noxuNamespacedResourceClient.List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package integration
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
@@ -89,68 +90,68 @@ func TestHandlerScope(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := otherScopeClient.Create(cr, metav1.CreateOptions{})
|
||||
_, err := otherScopeClient.Create(context.TODO(), cr, metav1.CreateOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Create(cr, metav1.CreateOptions{}, "status")
|
||||
_, err = otherScopeClient.Create(context.TODO(), cr, metav1.CreateOptions{}, "status")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Create(cr, metav1.CreateOptions{}, "scale")
|
||||
_, err = otherScopeClient.Create(context.TODO(), cr, metav1.CreateOptions{}, "scale")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = client.Create(cr, metav1.CreateOptions{})
|
||||
_, err = client.Create(context.TODO(), cr, metav1.CreateOptions{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = otherScopeClient.Get(name, metav1.GetOptions{})
|
||||
_, err = otherScopeClient.Get(context.TODO(), name, metav1.GetOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Get(name, metav1.GetOptions{}, "status")
|
||||
_, err = otherScopeClient.Get(context.TODO(), name, metav1.GetOptions{}, "status")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Get(name, metav1.GetOptions{}, "scale")
|
||||
_, err = otherScopeClient.Get(context.TODO(), name, metav1.GetOptions{}, "scale")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Update(cr, metav1.UpdateOptions{})
|
||||
_, err = otherScopeClient.Update(context.TODO(), cr, metav1.UpdateOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Update(cr, metav1.UpdateOptions{}, "status")
|
||||
_, err = otherScopeClient.Update(context.TODO(), cr, metav1.UpdateOptions{}, "status")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Update(cr, metav1.UpdateOptions{}, "scale")
|
||||
_, err = otherScopeClient.Update(context.TODO(), cr, metav1.UpdateOptions{}, "scale")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Patch(name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{})
|
||||
_, err = otherScopeClient.Patch(context.TODO(), name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Patch(name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{}, "status")
|
||||
_, err = otherScopeClient.Patch(context.TODO(), name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{}, "status")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Patch(name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{}, "scale")
|
||||
_, err = otherScopeClient.Patch(context.TODO(), name, types.MergePatchType, []byte(`{"metadata":{"annotations":{"test":"1"}}}`), metav1.PatchOptions{}, "scale")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
err = otherScopeClient.Delete(name, &metav1.DeleteOptions{})
|
||||
err = otherScopeClient.Delete(context.TODO(), name, metav1.DeleteOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
err = otherScopeClient.Delete(name, &metav1.DeleteOptions{}, "status")
|
||||
err = otherScopeClient.Delete(context.TODO(), name, metav1.DeleteOptions{}, "status")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
err = otherScopeClient.Delete(name, &metav1.DeleteOptions{}, "scale")
|
||||
err = otherScopeClient.Delete(context.TODO(), name, metav1.DeleteOptions{}, "scale")
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
err = otherScopeClient.DeleteCollection(&metav1.DeleteOptions{}, metav1.ListOptions{})
|
||||
err = otherScopeClient.DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
if scope == apiextensionsv1beta1.ClusterScoped {
|
||||
_, err = otherScopeClient.List(metav1.ListOptions{})
|
||||
_, err = otherScopeClient.List(context.TODO(), metav1.ListOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
|
||||
_, err = otherScopeClient.Watch(metav1.ListOptions{})
|
||||
_, err = otherScopeClient.Watch(context.TODO(), metav1.ListOptions{})
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
} else {
|
||||
_, err = otherScopeClient.List(metav1.ListOptions{})
|
||||
_, err = otherScopeClient.List(context.TODO(), metav1.ListOptions{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
w, err := otherScopeClient.Watch(metav1.ListOptions{})
|
||||
w, err := otherScopeClient.Watch(context.TODO(), metav1.ListOptions{})
|
||||
assert.NoError(t, err)
|
||||
if w != nil {
|
||||
w.Stop()
|
||||
|
||||
@@ -167,7 +167,7 @@ func TestStatusSubresource(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create noxu instance: %v", err)
|
||||
}
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -190,7 +190,7 @@ func TestStatusSubresource(t *testing.T) {
|
||||
|
||||
// UpdateStatus should not update spec.
|
||||
// Check that .spec.num = 10 and .status.num = 20
|
||||
updatedStatusInstance, err := noxuResourceClient.UpdateStatus(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
updatedStatusInstance, err := noxuResourceClient.UpdateStatus(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to update status: %v", err)
|
||||
}
|
||||
@@ -211,7 +211,7 @@ func TestStatusSubresource(t *testing.T) {
|
||||
t.Fatalf(".status.num: expected: %v, got: %v", int64(20), statusNum)
|
||||
}
|
||||
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -230,7 +230,7 @@ func TestStatusSubresource(t *testing.T) {
|
||||
|
||||
// Update should not update status.
|
||||
// Check that .spec.num = 40 and .status.num = 20
|
||||
updatedInstance, err := noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
updatedInstance, err := noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to update instance: %v", err)
|
||||
}
|
||||
@@ -250,7 +250,7 @@ func TestStatusSubresource(t *testing.T) {
|
||||
if statusNum != int64(20) {
|
||||
t.Fatalf(".status.num: expected: %v, got: %v", int64(20), statusNum)
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -315,7 +315,7 @@ func TestScaleSubresource(t *testing.T) {
|
||||
}
|
||||
|
||||
// set .status.labelSelector = bar
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -323,7 +323,7 @@ func TestScaleSubresource(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
_, err = noxuResourceClient.UpdateStatus(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.UpdateStatus(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to update status: %v", err)
|
||||
}
|
||||
@@ -362,7 +362,7 @@ func TestScaleSubresource(t *testing.T) {
|
||||
}
|
||||
|
||||
// check that .spec.replicas = 5, but status is not updated
|
||||
updatedNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
updatedNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -383,7 +383,7 @@ func TestScaleSubresource(t *testing.T) {
|
||||
|
||||
// validate maximum value
|
||||
// set .spec.replicas = math.MaxInt64
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -391,11 +391,11 @@ func TestScaleSubresource(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
_, err = noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
t.Fatalf("unexpected non-error: .spec.replicas should be less than 2147483647")
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -527,7 +527,7 @@ func TestValidateOnlyStatus(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error setting .spec.num: %v", err)
|
||||
}
|
||||
createdNoxuInstance, err = noxuResourceClient.UpdateStatus(createdNoxuInstance, metav1.UpdateOptions{})
|
||||
createdNoxuInstance, err = noxuResourceClient.UpdateStatus(context.TODO(), createdNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -537,7 +537,7 @@ func TestValidateOnlyStatus(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error setting .status.num: %v", err)
|
||||
}
|
||||
_, err = noxuResourceClient.UpdateStatus(createdNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.UpdateStatus(context.TODO(), createdNoxuInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
t.Fatal("expected error, but got none")
|
||||
}
|
||||
@@ -548,7 +548,7 @@ func TestValidateOnlyStatus(t *testing.T) {
|
||||
if !strings.Contains(statusError.Error(), "Invalid value") {
|
||||
t.Fatalf("expected 'Invalid value' in error, got: %v", err)
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -670,7 +670,7 @@ func TestGeneration(t *testing.T) {
|
||||
}
|
||||
|
||||
// .metadata.generation = 1
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -685,7 +685,7 @@ func TestGeneration(t *testing.T) {
|
||||
}
|
||||
|
||||
// UpdateStatus does not increment generation
|
||||
updatedStatusInstance, err := noxuResourceClient.UpdateStatus(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
updatedStatusInstance, err := noxuResourceClient.UpdateStatus(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to update status: %v", err)
|
||||
}
|
||||
@@ -693,7 +693,7 @@ func TestGeneration(t *testing.T) {
|
||||
t.Fatalf("updating status should not increment .metadata.generation: expected: %v, got: %v", 1, updatedStatusInstance.GetGeneration())
|
||||
}
|
||||
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err = noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -705,14 +705,14 @@ func TestGeneration(t *testing.T) {
|
||||
}
|
||||
|
||||
// Update increments generation
|
||||
updatedInstance, err := noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
updatedInstance, err := noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to update instance: %v", err)
|
||||
}
|
||||
if updatedInstance.GetGeneration() != 2 {
|
||||
t.Fatalf("updating spec should increment .metadata.generation: expected: %v, got: %v", 2, updatedStatusInstance.GetGeneration())
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -765,7 +765,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
|
||||
t.Logf("Patching .status.num to 999")
|
||||
patch := []byte(`{"spec": {"num":999}, "status": {"num":999}}`)
|
||||
patchedNoxuInstance, err := noxuResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
patchedNoxuInstance, err := noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -786,14 +786,14 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
// and then the updated object shows a conflicting diff, which permanently fails the patch.
|
||||
// This gives expected stability in the patch without retrying on an known number of conflicts below in the test.
|
||||
// See https://issue.k8s.io/42644
|
||||
_, err = noxuResourceClient.Get("foo", metav1.GetOptions{ResourceVersion: patchedNoxuInstance.GetResourceVersion()})
|
||||
_, err = noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{ResourceVersion: patchedNoxuInstance.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
// no-op patch
|
||||
t.Logf("Patching .status.num again to 999")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -804,7 +804,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
|
||||
// empty patch
|
||||
t.Logf("Applying empty patch")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch("foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}, "status")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}, "status")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -816,7 +816,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
|
||||
t.Logf("Patching .spec.replicas to 7")
|
||||
patch = []byte(`{"spec": {"replicas":7}, "status": {"replicas":7}}`)
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -837,7 +837,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
// and then the updated object shows a conflicting diff, which permanently fails the patch.
|
||||
// This gives expected stability in the patch without retrying on an known number of conflicts below in the test.
|
||||
// See https://issue.k8s.io/42644
|
||||
_, err = noxuResourceClient.Get("foo", metav1.GetOptions{ResourceVersion: patchedNoxuInstance.GetResourceVersion()})
|
||||
_, err = noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{ResourceVersion: patchedNoxuInstance.GetResourceVersion()})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -856,7 +856,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
|
||||
// no-op patch
|
||||
t.Logf("Patching .spec.replicas again to 7")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -867,7 +867,7 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
|
||||
// empty patch
|
||||
t.Logf("Applying empty patch")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch("foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}, "scale")
|
||||
patchedNoxuInstance, err = noxuResourceClient.Patch(context.TODO(), "foo", types.MergePatchType, []byte(`{}`), metav1.PatchOptions{}, "scale")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -877,16 +877,16 @@ func TestSubresourcePatch(t *testing.T) {
|
||||
expectString(t, patchedNoxuInstance.UnstructuredContent(), rv, "metadata", "resourceVersion")
|
||||
|
||||
// make sure strategic merge patch is not supported for both status and scale
|
||||
_, err = noxuResourceClient.Patch("foo", types.StrategicMergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
_, err = noxuResourceClient.Patch(context.TODO(), "foo", types.StrategicMergePatchType, patch, metav1.PatchOptions{}, "status")
|
||||
if err == nil {
|
||||
t.Fatalf("unexpected non-error: strategic merge patch is not supported for custom resources")
|
||||
}
|
||||
|
||||
_, err = noxuResourceClient.Patch("foo", types.StrategicMergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
_, err = noxuResourceClient.Patch(context.TODO(), "foo", types.StrategicMergePatchType, patch, metav1.PatchOptions{}, "scale")
|
||||
if err == nil {
|
||||
t.Fatalf("unexpected non-error: strategic merge patch is not supported for custom resources")
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -131,7 +131,7 @@ func TestTableGet(t *testing.T) {
|
||||
t.Logf("table crd created: %#v", crd)
|
||||
|
||||
crClient := newNamespacedCustomResourceVersionedClient("", dynamicClient, crd, "v1")
|
||||
foo, err := crClient.Create(newTableInstance("foo"), metav1.CreateOptions{})
|
||||
foo, err := crClient.Create(context.TODO(), newTableInstance("foo"), metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create noxu instance: %v", err)
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ func TestForProperValidationErrors(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
_, err := noxuResourceClient.Create(tc.instanceFn(), metav1.CreateOptions{})
|
||||
_, err := noxuResourceClient.Create(context.TODO(), tc.instanceFn(), metav1.CreateOptions{})
|
||||
if err == nil {
|
||||
t.Errorf("%v: expected %v", tc.name, tc.expectedError)
|
||||
continue
|
||||
@@ -246,7 +246,7 @@ func TestCustomResourceValidation(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create noxu instance: %v", err)
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -326,7 +326,7 @@ func TestCustomResourceItemsValidation(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}}
|
||||
_, err = client.Resource(gvr).Create(&u, metav1.CreateOptions{})
|
||||
_, err = client.Resource(gvr).Create(context.TODO(), &u, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
@@ -452,7 +452,7 @@ func TestCustomResourceUpdateValidation(t *testing.T) {
|
||||
t.Fatalf("unable to create noxu instance: %v", err)
|
||||
}
|
||||
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get("foo", metav1.GetOptions{})
|
||||
gottenNoxuInstance, err := noxuResourceClient.Get(context.TODO(), "foo", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -469,11 +469,11 @@ func TestCustomResourceUpdateValidation(t *testing.T) {
|
||||
"delta": "hello",
|
||||
}
|
||||
|
||||
_, err = noxuResourceClient.Update(gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
_, err = noxuResourceClient.Update(context.TODO(), gottenNoxuInstance, metav1.UpdateOptions{})
|
||||
if err == nil {
|
||||
t.Fatalf("unexpected non-error: alpha and beta should be present while updating %v", gottenNoxuInstance)
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
}
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -566,7 +566,7 @@ func TestCustomResourceValidationErrors(t *testing.T) {
|
||||
noxuResourceClient := newNamespacedCustomResourceVersionedClient(ns, dynamicClient, noxuDefinition, v.Name)
|
||||
instanceToCreate := tc.instanceFn()
|
||||
instanceToCreate.Object["apiVersion"] = fmt.Sprintf("%s/%s", noxuDefinition.Spec.Group, v.Name)
|
||||
_, err := noxuResourceClient.Create(instanceToCreate, metav1.CreateOptions{})
|
||||
_, err := noxuResourceClient.Create(context.TODO(), instanceToCreate, metav1.CreateOptions{})
|
||||
if err == nil {
|
||||
t.Errorf("%v: expected %v", tc.name, tc.expectedErrors)
|
||||
continue
|
||||
@@ -634,7 +634,7 @@ func TestCRValidationOnCRDUpdate(t *testing.T) {
|
||||
|
||||
// CR is now accepted
|
||||
err = wait.Poll(500*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
_, err := noxuResourceClient.Create(instanceToCreate, metav1.CreateOptions{})
|
||||
_, err := noxuResourceClient.Create(context.TODO(), instanceToCreate, metav1.CreateOptions{})
|
||||
if _, isStatus := err.(*apierrors.StatusError); isStatus {
|
||||
if apierrors.IsInvalid(err) {
|
||||
return false, nil
|
||||
@@ -648,7 +648,7 @@ func TestCRValidationOnCRDUpdate(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
noxuResourceClient.Delete("foo", &metav1.DeleteOptions{})
|
||||
noxuResourceClient.Delete(context.TODO(), "foo", metav1.DeleteOptions{})
|
||||
if err := fixtures.DeleteCustomResourceDefinition(noxuDefinition, apiExtensionClient); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ func TestInternalVersionIsHandlerVersion(t *testing.T) {
|
||||
|
||||
t.Logf("Creating foo")
|
||||
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, "foo")
|
||||
_, err = noxuNamespacedResourceClientV1beta1.Create(noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
_, err = noxuNamespacedResourceClientV1beta1.Create(context.TODO(), noxuInstanceToCreate, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -88,7 +88,7 @@ func TestInternalVersionIsHandlerVersion(t *testing.T) {
|
||||
patch := []byte(fmt.Sprintf(`{"i": %d}`, i))
|
||||
i++
|
||||
|
||||
_, err := noxuNamespacedResourceClientV1beta1.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
_, err := noxuNamespacedResourceClientV1beta1.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
// work around "grpc: the client connection is closing" error
|
||||
// TODO: fix the grpc error
|
||||
@@ -111,7 +111,7 @@ func TestInternalVersionIsHandlerVersion(t *testing.T) {
|
||||
patch := []byte(fmt.Sprintf(`{"i": %d}`, i))
|
||||
i++
|
||||
|
||||
_, err := noxuNamespacedResourceClientV1beta2.Patch("foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
_, err := noxuNamespacedResourceClientV1beta2.Patch(context.TODO(), "foo", types.MergePatchType, patch, metav1.PatchOptions{})
|
||||
assert.NotNil(t, err)
|
||||
|
||||
// work around "grpc: the client connection is closing" error
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package endpoints
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -781,7 +782,7 @@ func TestWatchHTTPDynamicClientErrors(t *testing.T) {
|
||||
APIPath: "/" + prefix,
|
||||
}).Resource(newGroupVersion.WithResource("simple"))
|
||||
|
||||
_, err := client.Watch(metav1.ListOptions{})
|
||||
_, err := client.Watch(context.TODO(), metav1.ListOptions{})
|
||||
if err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package resource
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
@@ -36,7 +37,7 @@ func CRDFromDynamic(client dynamic.Interface) CRDGetter {
|
||||
Group: "apiextensions.k8s.io",
|
||||
Version: "v1beta1",
|
||||
Resource: "customresourcedefinitions",
|
||||
}).List(metav1.ListOptions{})
|
||||
}).List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to list CRDs: %v", err)
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package dynamic
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
@@ -134,7 +135,7 @@ func TestList(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).List(metav1.ListOptions{})
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when listing %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -209,7 +210,7 @@ func TestGet(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Get(tc.name, metav1.GetOptions{}, tc.subresource...)
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Get(context.TODO(), tc.name, metav1.GetOptions{}, tc.subresource...)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when getting %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -234,7 +235,7 @@ func TestDelete(t *testing.T) {
|
||||
namespace string
|
||||
name string
|
||||
path string
|
||||
deleteOptions *metav1.DeleteOptions
|
||||
deleteOptions metav1.DeleteOptions
|
||||
}{
|
||||
{
|
||||
name: "normal_delete",
|
||||
@@ -260,7 +261,7 @@ func TestDelete(t *testing.T) {
|
||||
namespace: "nstest",
|
||||
name: "namespaced_delete_with_options",
|
||||
path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete_with_options",
|
||||
deleteOptions: &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}, PropagationPolicy: &background},
|
||||
deleteOptions: metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}, PropagationPolicy: &background},
|
||||
},
|
||||
}
|
||||
for _, tc := range tcs {
|
||||
@@ -283,7 +284,7 @@ func TestDelete(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
err = cl.Resource(resource).Namespace(tc.namespace).Delete(tc.name, tc.deleteOptions, tc.subresource...)
|
||||
err = cl.Resource(resource).Namespace(tc.namespace).Delete(context.TODO(), tc.name, tc.deleteOptions, tc.subresource...)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when deleting %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -331,7 +332,7 @@ func TestDeleteCollection(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
err = cl.Resource(resource).Namespace(tc.namespace).DeleteCollection(nil, metav1.ListOptions{})
|
||||
err = cl.Resource(resource).Namespace(tc.namespace).DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when deleting collection %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -404,7 +405,7 @@ func TestCreate(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Create(tc.obj, metav1.CreateOptions{}, tc.subresource...)
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Create(context.TODO(), tc.obj, metav1.CreateOptions{}, tc.subresource...)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when creating %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -481,7 +482,7 @@ func TestUpdate(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Update(tc.obj, metav1.UpdateOptions{}, tc.subresource...)
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Update(context.TODO(), tc.obj, metav1.UpdateOptions{}, tc.subresource...)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when updating %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -550,7 +551,7 @@ func TestWatch(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
watcher, err := cl.Resource(resource).Namespace(tc.namespace).Watch(metav1.ListOptions{})
|
||||
watcher, err := cl.Resource(resource).Namespace(tc.namespace).Watch(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when watching %q: %v", tc.name, err)
|
||||
continue
|
||||
@@ -640,7 +641,7 @@ func TestPatch(t *testing.T) {
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Patch(tc.name, types.StrategicMergePatchType, tc.patch, metav1.PatchOptions{}, tc.subresource...)
|
||||
got, err := cl.Resource(resource).Namespace(tc.namespace).Patch(context.TODO(), tc.name, types.StrategicMergePatchType, tc.patch, metav1.PatchOptions{}, tc.subresource...)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error when patching %q: %v", tc.name, err)
|
||||
continue
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package dynamicinformer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -125,13 +126,13 @@ func NewFilteredDynamicInformer(client dynamic.Interface, gvr schema.GroupVersio
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.Resource(gvr).Namespace(namespace).List(options)
|
||||
return client.Resource(gvr).Namespace(namespace).List(context.TODO(), options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.Resource(gvr).Namespace(namespace).Watch(options)
|
||||
return client.Resource(gvr).Namespace(namespace).Watch(context.TODO(), options)
|
||||
},
|
||||
},
|
||||
&unstructured.Unstructured{},
|
||||
|
||||
@@ -48,7 +48,7 @@ func TestDynamicSharedInformerFactory(t *testing.T) {
|
||||
gvr: schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"},
|
||||
trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, _ *unstructured.Unstructured) *unstructured.Unstructured {
|
||||
testObject := newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo")
|
||||
createdObj, err := fakeClient.Resource(gvr).Namespace(ns).Create(testObject, metav1.CreateOptions{})
|
||||
createdObj, err := fakeClient.Resource(gvr).Namespace(ns).Create(context.TODO(), testObject, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -71,7 +71,7 @@ func TestDynamicSharedInformerFactory(t *testing.T) {
|
||||
existingObj: newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo"),
|
||||
trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, testObject *unstructured.Unstructured) *unstructured.Unstructured {
|
||||
testObject.Object["spec"] = "updatedName"
|
||||
updatedObj, err := fakeClient.Resource(gvr).Namespace(ns).Update(testObject, metav1.UpdateOptions{})
|
||||
updatedObj, err := fakeClient.Resource(gvr).Namespace(ns).Update(context.TODO(), testObject, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -93,7 +93,7 @@ func TestDynamicSharedInformerFactory(t *testing.T) {
|
||||
gvr: schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"},
|
||||
existingObj: newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo"),
|
||||
trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, testObject *unstructured.Unstructured) *unstructured.Unstructured {
|
||||
err := fakeClient.Resource(gvr).Namespace(ns).Delete(testObject.GetName(), &metav1.DeleteOptions{})
|
||||
err := fakeClient.Resource(gvr).Namespace(ns).Delete(context.TODO(), testObject.GetName(), metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
@@ -86,7 +87,7 @@ func (c *dynamicResourceClient) Namespace(ns string) dynamic.ResourceInterface {
|
||||
return &ret
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
var uncastRet runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
@@ -132,7 +133,7 @@ func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts meta
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Update(ctx context.Context, obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
var uncastRet runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
@@ -168,7 +169,7 @@ func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts meta
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) UpdateStatus(ctx context.Context, obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) {
|
||||
var uncastRet runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
@@ -196,7 +197,7 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error {
|
||||
func (c *dynamicResourceClient) Delete(ctx context.Context, name string, opts metav1.DeleteOptions, subresources ...string) error {
|
||||
var err error
|
||||
switch {
|
||||
case len(c.namespace) == 0 && len(subresources) == 0:
|
||||
@@ -219,7 +220,7 @@ func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions,
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
func (c *dynamicResourceClient) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
var err error
|
||||
switch {
|
||||
case len(c.namespace) == 0:
|
||||
@@ -235,7 +236,7 @@ func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, lis
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Get(ctx context.Context, name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
var uncastRet runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
@@ -270,7 +271,7 @@ func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subreso
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error) {
|
||||
func (c *dynamicResourceClient) List(ctx context.Context, opts metav1.ListOptions) (*unstructured.UnstructuredList, error) {
|
||||
var obj runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
@@ -317,7 +318,7 @@ func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.Uns
|
||||
return list, nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
func (c *dynamicResourceClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
|
||||
switch {
|
||||
case len(c.namespace) == 0:
|
||||
return c.client.Fake.
|
||||
@@ -333,7 +334,7 @@ func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface,
|
||||
}
|
||||
|
||||
// TODO: opts are currently ignored.
|
||||
func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
var uncastRet runtime.Object
|
||||
var err error
|
||||
switch {
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
@@ -68,7 +69,7 @@ func TestList(t *testing.T) {
|
||||
newUnstructured("group/version", "TheKind", "ns-foo", "name-baz"),
|
||||
newUnstructured("group2/version", "TheKind", "ns-foo", "name2-baz"),
|
||||
)
|
||||
listFirst, err := client.Resource(schema.GroupVersionResource{Group: "group", Version: "version", Resource: "thekinds"}).List(metav1.ListOptions{})
|
||||
listFirst, err := client.Resource(schema.GroupVersionResource{Group: "group", Version: "version", Resource: "thekinds"}).List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -96,7 +97,7 @@ func (tc *patchTestCase) runner(t *testing.T) {
|
||||
client := NewSimpleDynamicClient(runtime.NewScheme(), tc.object)
|
||||
resourceInterface := client.Resource(schema.GroupVersionResource{Group: testGroup, Version: testVersion, Resource: testResource}).Namespace(testNamespace)
|
||||
|
||||
got, recErr := resourceInterface.Patch(testName, tc.patchType, tc.patchBytes, metav1.PatchOptions{})
|
||||
got, recErr := resourceInterface.Patch(context.TODO(), testName, tc.patchType, tc.patchBytes, metav1.PatchOptions{})
|
||||
|
||||
if err := tc.verifyErr(recErr); err != nil {
|
||||
t.Error(err)
|
||||
|
||||
@@ -17,6 +17,8 @@ limitations under the License.
|
||||
package dynamic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
@@ -29,15 +31,15 @@ type Interface interface {
|
||||
}
|
||||
|
||||
type ResourceInterface interface {
|
||||
Create(obj *unstructured.Unstructured, options metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
Update(obj *unstructured.Unstructured, options metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
UpdateStatus(obj *unstructured.Unstructured, options metav1.UpdateOptions) (*unstructured.Unstructured, error)
|
||||
Delete(name string, options *metav1.DeleteOptions, subresources ...string) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, options metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
Create(ctx context.Context, obj *unstructured.Unstructured, options metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
Update(ctx context.Context, obj *unstructured.Unstructured, options metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
UpdateStatus(ctx context.Context, obj *unstructured.Unstructured, options metav1.UpdateOptions) (*unstructured.Unstructured, error)
|
||||
Delete(ctx context.Context, name string, options metav1.DeleteOptions, subresources ...string) error
|
||||
DeleteCollection(ctx context.Context, options metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(ctx context.Context, name string, options metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
List(ctx context.Context, opts metav1.ListOptions) (*unstructured.UnstructuredList, error)
|
||||
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, options metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error)
|
||||
}
|
||||
|
||||
type NamespaceableResourceInterface interface {
|
||||
|
||||
@@ -90,7 +90,7 @@ func (c *dynamicResourceClient) Namespace(ns string) ResourceInterface {
|
||||
return &ret
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -112,7 +112,7 @@ func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts meta
|
||||
AbsPath(append(c.makeURLSegments(name), subresources...)...).
|
||||
Body(outBytes).
|
||||
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -128,7 +128,7 @@ func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts meta
|
||||
return uncastObj.(*unstructured.Unstructured), nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Update(ctx context.Context, obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
accessor, err := meta.Accessor(obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -147,7 +147,7 @@ func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts meta
|
||||
AbsPath(append(c.makeURLSegments(name), subresources...)...).
|
||||
Body(outBytes).
|
||||
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -163,7 +163,7 @@ func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts meta
|
||||
return uncastObj.(*unstructured.Unstructured), nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) UpdateStatus(ctx context.Context, obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) {
|
||||
accessor, err := meta.Accessor(obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -183,7 +183,7 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
|
||||
AbsPath(append(c.makeURLSegments(name), "status")...).
|
||||
Body(outBytes).
|
||||
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -199,14 +199,11 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
|
||||
return uncastObj.(*unstructured.Unstructured), nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error {
|
||||
func (c *dynamicResourceClient) Delete(ctx context.Context, name string, opts metav1.DeleteOptions, subresources ...string) error {
|
||||
if len(name) == 0 {
|
||||
return fmt.Errorf("name is required")
|
||||
}
|
||||
if opts == nil {
|
||||
opts = &metav1.DeleteOptions{}
|
||||
}
|
||||
deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), opts)
|
||||
deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), &opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -215,15 +212,12 @@ func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions,
|
||||
Delete().
|
||||
AbsPath(append(c.makeURLSegments(name), subresources...)...).
|
||||
Body(deleteOptionsByte).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
return result.Error()
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
if opts == nil {
|
||||
opts = &metav1.DeleteOptions{}
|
||||
}
|
||||
deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), opts)
|
||||
func (c *dynamicResourceClient) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOptions metav1.ListOptions) error {
|
||||
deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), &opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -233,15 +227,15 @@ func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, lis
|
||||
AbsPath(c.makeURLSegments("")...).
|
||||
Body(deleteOptionsByte).
|
||||
SpecificallyVersionedParams(&listOptions, dynamicParameterCodec, versionV1).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
return result.Error()
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Get(ctx context.Context, name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
if len(name) == 0 {
|
||||
return nil, fmt.Errorf("name is required")
|
||||
}
|
||||
result := c.client.client.Get().AbsPath(append(c.makeURLSegments(name), subresources...)...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do(context.TODO())
|
||||
result := c.client.client.Get().AbsPath(append(c.makeURLSegments(name), subresources...)...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -256,8 +250,8 @@ func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subreso
|
||||
return uncastObj.(*unstructured.Unstructured), nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error) {
|
||||
result := c.client.client.Get().AbsPath(c.makeURLSegments("")...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do(context.TODO())
|
||||
func (c *dynamicResourceClient) List(ctx context.Context, opts metav1.ListOptions) (*unstructured.UnstructuredList, error) {
|
||||
result := c.client.client.Get().AbsPath(c.makeURLSegments("")...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -280,14 +274,14 @@ func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.Uns
|
||||
return list, nil
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
func (c *dynamicResourceClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
|
||||
opts.Watch = true
|
||||
return c.client.client.Get().AbsPath(c.makeURLSegments("")...).
|
||||
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
|
||||
Watch(context.TODO())
|
||||
Watch(ctx)
|
||||
}
|
||||
|
||||
func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
func (c *dynamicResourceClient) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) {
|
||||
if len(name) == 0 {
|
||||
return nil, fmt.Errorf("name is required")
|
||||
}
|
||||
@@ -296,7 +290,7 @@ func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []by
|
||||
AbsPath(append(c.makeURLSegments(name), subresources...)...).
|
||||
Body(data).
|
||||
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
|
||||
Do(context.TODO())
|
||||
Do(ctx)
|
||||
if err := result.Error(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
@@ -108,7 +109,7 @@ func main() {
|
||||
|
||||
// Create Deployment
|
||||
fmt.Println("Creating deployment...")
|
||||
result, err := client.Resource(deploymentRes).Namespace(namespace).Create(deployment, metav1.CreateOptions{})
|
||||
result, err := client.Resource(deploymentRes).Namespace(namespace).Create(context.TODO(), deployment, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -133,7 +134,7 @@ func main() {
|
||||
retryErr := retry.RetryOnConflict(retry.DefaultRetry, func() error {
|
||||
// Retrieve the latest version of Deployment before attempting update
|
||||
// RetryOnConflict uses exponential backoff to avoid exhausting the apiserver
|
||||
result, getErr := client.Resource(deploymentRes).Namespace(namespace).Get("demo-deployment", metav1.GetOptions{})
|
||||
result, getErr := client.Resource(deploymentRes).Namespace(namespace).Get(context.TODO(), "demo-deployment", metav1.GetOptions{})
|
||||
if getErr != nil {
|
||||
panic(fmt.Errorf("failed to get latest version of Deployment: %v", getErr))
|
||||
}
|
||||
@@ -157,7 +158,7 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
_, updateErr := client.Resource(deploymentRes).Namespace(namespace).Update(result, metav1.UpdateOptions{})
|
||||
_, updateErr := client.Resource(deploymentRes).Namespace(namespace).Update(context.TODO(), result, metav1.UpdateOptions{})
|
||||
return updateErr
|
||||
})
|
||||
if retryErr != nil {
|
||||
@@ -168,7 +169,7 @@ func main() {
|
||||
// List Deployments
|
||||
prompt()
|
||||
fmt.Printf("Listing deployments in namespace %q:\n", apiv1.NamespaceDefault)
|
||||
list, err := client.Resource(deploymentRes).Namespace(namespace).List(metav1.ListOptions{})
|
||||
list, err := client.Resource(deploymentRes).Namespace(namespace).List(context.TODO(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -185,10 +186,10 @@ func main() {
|
||||
prompt()
|
||||
fmt.Println("Deleting deployment...")
|
||||
deletePolicy := metav1.DeletePropagationForeground
|
||||
deleteOptions := &metav1.DeleteOptions{
|
||||
deleteOptions := metav1.DeleteOptions{
|
||||
PropagationPolicy: &deletePolicy,
|
||||
}
|
||||
if err := client.Resource(deploymentRes).Namespace(namespace).Delete("demo-deployment", deleteOptions); err != nil {
|
||||
if err := client.Resource(deploymentRes).Namespace(namespace).Delete(context.TODO(), "demo-deployment", deleteOptions); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package apply
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"strings"
|
||||
@@ -97,7 +98,7 @@ func (p *pruner) pruneAll(o *ApplyOptions) error {
|
||||
func (p *pruner) prune(namespace string, mapping *meta.RESTMapping) error {
|
||||
objList, err := p.dynamicClient.Resource(mapping.Resource).
|
||||
Namespace(namespace).
|
||||
List(metav1.ListOptions{
|
||||
List(context.TODO(), metav1.ListOptions{
|
||||
LabelSelector: p.labelSelector,
|
||||
FieldSelector: p.fieldSelector,
|
||||
})
|
||||
@@ -145,9 +146,9 @@ func (p *pruner) delete(namespace, name string, mapping *meta.RESTMapping) error
|
||||
}
|
||||
|
||||
func runDelete(namespace, name string, mapping *meta.RESTMapping, c dynamic.Interface, cascade bool, gracePeriod int, serverDryRun bool) error {
|
||||
options := &metav1.DeleteOptions{}
|
||||
options := metav1.DeleteOptions{}
|
||||
if gracePeriod >= 0 {
|
||||
options = metav1.NewDeleteOptions(int64(gracePeriod))
|
||||
options = *metav1.NewDeleteOptions(int64(gracePeriod))
|
||||
}
|
||||
if serverDryRun {
|
||||
options.DryRun = []string{metav1.DryRunAll}
|
||||
@@ -157,7 +158,7 @@ func runDelete(namespace, name string, mapping *meta.RESTMapping, c dynamic.Inte
|
||||
policy = metav1.DeletePropagationOrphan
|
||||
}
|
||||
options.PropagationPolicy = &policy
|
||||
return c.Resource(mapping.Resource).Namespace(namespace).Delete(name, options)
|
||||
return c.Resource(mapping.Resource).Namespace(namespace).Delete(context.TODO(), name, options)
|
||||
}
|
||||
|
||||
type pruneResource struct {
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package create
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/url"
|
||||
@@ -451,7 +452,7 @@ func (o *CreateSubcommandOptions) Run() error {
|
||||
}
|
||||
createOptions.DryRun = []string{metav1.DryRunAll}
|
||||
}
|
||||
actualObject, err := o.DynamicClient.Resource(mapping.Resource).Namespace(o.Namespace).Create(asUnstructured, createOptions)
|
||||
actualObject, err := o.DynamicClient.Resource(mapping.Resource).Namespace(o.Namespace).Create(context.TODO(), asUnstructured, createOptions)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -192,11 +192,11 @@ func (o *RolloutStatusOptions) Run() error {
|
||||
lw := &cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
options.FieldSelector = fieldSelector
|
||||
return o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(options)
|
||||
return o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(context.TODO(), options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
options.FieldSelector = fieldSelector
|
||||
return o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(options)
|
||||
return o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(context.TODO(), options)
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ func IsDeleted(info *resource.Info, o *WaitOptions) (runtime.Object, bool, error
|
||||
nameSelector := fields.OneTermEqualSelector("metadata.name", info.Name).String()
|
||||
|
||||
// List with a name field selector to get the current resourceVersion to watch from (not the object's resourceVersion)
|
||||
gottenObjList, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(metav1.ListOptions{FieldSelector: nameSelector})
|
||||
gottenObjList, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(context.TODO(), metav1.ListOptions{FieldSelector: nameSelector})
|
||||
if apierrors.IsNotFound(err) {
|
||||
return info.Object, true, nil
|
||||
}
|
||||
@@ -289,7 +289,7 @@ func IsDeleted(info *resource.Info, o *WaitOptions) (runtime.Object, bool, error
|
||||
watchOptions := metav1.ListOptions{}
|
||||
watchOptions.FieldSelector = nameSelector
|
||||
watchOptions.ResourceVersion = gottenObjList.GetResourceVersion()
|
||||
objWatch, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(watchOptions)
|
||||
objWatch, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(context.TODO(), watchOptions)
|
||||
if err != nil {
|
||||
return gottenObj, false, err
|
||||
}
|
||||
@@ -361,7 +361,7 @@ func (w ConditionalWait) IsConditionMet(info *resource.Info, o *WaitOptions) (ru
|
||||
|
||||
var gottenObj *unstructured.Unstructured
|
||||
// List with a name field selector to get the current resourceVersion to watch from (not the object's resourceVersion)
|
||||
gottenObjList, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(metav1.ListOptions{FieldSelector: nameSelector})
|
||||
gottenObjList, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).List(context.TODO(), metav1.ListOptions{FieldSelector: nameSelector})
|
||||
|
||||
resourceVersion := ""
|
||||
switch {
|
||||
@@ -384,7 +384,7 @@ func (w ConditionalWait) IsConditionMet(info *resource.Info, o *WaitOptions) (ru
|
||||
watchOptions := metav1.ListOptions{}
|
||||
watchOptions.FieldSelector = nameSelector
|
||||
watchOptions.ResourceVersion = resourceVersion
|
||||
objWatch, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(watchOptions)
|
||||
objWatch, err := o.DynamicClient.Resource(info.Mapping.Resource).Namespace(info.Namespace).Watch(context.TODO(), watchOptions)
|
||||
if err != nil {
|
||||
return gottenObj, false, err
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ type genericDescriber struct {
|
||||
}
|
||||
|
||||
func (g *genericDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (output string, err error) {
|
||||
obj, err := g.dynamic.Resource(g.mapping.Resource).Namespace(namespace).Get(name, metav1.GetOptions{})
|
||||
obj, err := g.dynamic.Resource(g.mapping.Resource).Namespace(namespace).Get(context.TODO(), name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user