diff --git a/go.mod b/go.mod index 1cc9ad96f..fa7455935 100644 --- a/go.mod +++ b/go.mod @@ -28,11 +28,11 @@ require ( github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.31.0 gopkg.in/evanphx/json-patch.v4 v4.12.0 - k8s.io/api v0.0.0-20250612195650-7efafe3627c8 - k8s.io/apimachinery v0.0.0-20250612195403-e0270fe44c97 + k8s.io/api v0.0.0-20250623212520-9c065c5b59d8 + k8s.io/apimachinery v0.0.0-20250618223650-ae7698643b3d k8s.io/cli-runtime v0.0.0-20250612204029-ea98d716c955 - k8s.io/client-go v0.0.0-20250612200049-4e82e684120e - k8s.io/component-base v0.0.0-20250612201519-d0c00e6471f7 + k8s.io/client-go v0.0.0-20250619112734-41574813b1be + k8s.io/component-base v0.0.0-20250617034450-dc0881cd03da k8s.io/component-helpers v0.0.0-20250612201654-2b90e129ba7a k8s.io/klog/v2 v2.130.1 k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff @@ -92,3 +92,5 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/kustomize/api v0.19.0 // indirect ) + +replace k8s.io/code-generator => k8s.io/code-generator v0.0.0-20250619115847-1007f02dee22 diff --git a/go.sum b/go.sum index ceeb13d0a..2db9a9a75 100644 --- a/go.sum +++ b/go.sum @@ -197,16 +197,16 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.0.0-20250612195650-7efafe3627c8 h1:K1AnJQBQTKLy2C/up2YSFuuQ+OBucYGcDCBO2cafjlQ= -k8s.io/api v0.0.0-20250612195650-7efafe3627c8/go.mod h1:+9QbMyXTXctHAXg3fdhJbuZgyzhYgprCn43M5NqoJzw= -k8s.io/apimachinery v0.0.0-20250612195403-e0270fe44c97 h1:h2og30eGCCk1GOEZK6+LNhhlydDcWY3wJaWDIs05xR8= -k8s.io/apimachinery v0.0.0-20250612195403-e0270fe44c97/go.mod h1:EZ7eIfFAwky7ktmG4Pu9XWxBxFG++4dxPDOM0GL3abw= +k8s.io/api v0.0.0-20250623212520-9c065c5b59d8 h1:VK3JsnI+PJmqGI43qXPYxSd6Khn9SQavAqX73Hq45is= +k8s.io/api v0.0.0-20250623212520-9c065c5b59d8/go.mod h1:XA+cTxTza2F9Dyxz4LToBD+gF77K6NG2jgbGJdN5o0M= +k8s.io/apimachinery v0.0.0-20250618223650-ae7698643b3d h1:9qxYMmJsUps3r/rHWWQ4G/1Ny3Z7MafzXfdslORyPmg= +k8s.io/apimachinery v0.0.0-20250618223650-ae7698643b3d/go.mod h1:/kMnP8WowZRse4LjwOCxh+RR0W03jl2f/gCRYqeYMZA= k8s.io/cli-runtime v0.0.0-20250612204029-ea98d716c955 h1:/vNS33lahptlYENPecDoe4fD8SOE+aGTxP5wozvK7zw= k8s.io/cli-runtime v0.0.0-20250612204029-ea98d716c955/go.mod h1:Exo7hMRapEHo/QMSGxd1tqaGuZBQpgGZt7Sintr5L/M= -k8s.io/client-go v0.0.0-20250612200049-4e82e684120e h1:xoSxEgTvcAD7YG46B6RN1yZx5KhF0YKNe4SSoY+qSQA= -k8s.io/client-go v0.0.0-20250612200049-4e82e684120e/go.mod h1:hktzpPyrdfB1WrXOvdnDayNSrngzEwWjiwTGqq6Zjns= -k8s.io/component-base v0.0.0-20250612201519-d0c00e6471f7 h1:PmR3IJeL8qbnqdH70lmCLxZjHFr+Cbz5v6VY6ZFlMsI= -k8s.io/component-base v0.0.0-20250612201519-d0c00e6471f7/go.mod h1:eMJvxKozNu3AbHhH6mWUJbzNhElacCbAilLeMjxIW5k= +k8s.io/client-go v0.0.0-20250619112734-41574813b1be h1:1q8TEC0FSoYbSKvQXw0hDZX9eYiko816DT/s0Lcd5Bc= +k8s.io/client-go v0.0.0-20250619112734-41574813b1be/go.mod h1:svnXN0zcYP88CRMk6Sg32RnUVb5a8uqJG1QOrMsPYBk= +k8s.io/component-base v0.0.0-20250617034450-dc0881cd03da h1:JIslv7EMZ/AS8fKVL2ttpIbKiLKiMc4FEBiFepcaHCk= +k8s.io/component-base v0.0.0-20250617034450-dc0881cd03da/go.mod h1:iMJjQa+o/mr6ZuRxeZJyv/X6qV7SlKwQtmX4TSYQais= k8s.io/component-helpers v0.0.0-20250612201654-2b90e129ba7a h1:AccUaO5Y8Z/rRivu4l0eqZbocGbxHGqiuo19dc0vcPw= k8s.io/component-helpers v0.0.0-20250612201654-2b90e129ba7a/go.mod h1:5Grn35PpLsSHt+WUrQbXI2QN85eBCWnH5nx4fGBbYYU= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= diff --git a/pkg/cmd/delete/delete.go b/pkg/cmd/delete/delete.go index c0a5d5045..dafb9d2be 100644 --- a/pkg/cmd/delete/delete.go +++ b/pkg/cmd/delete/delete.go @@ -506,6 +506,10 @@ func (o *DeleteOptions) PrintObj(info *resource.Info) { operation = "force deleted" } + if info.Namespaced() { + operation = fmt.Sprintf("%s from %s namespace", operation, info.Namespace) + } + switch o.DryRunStrategy { case cmdutil.DryRunClient: operation = fmt.Sprintf("%s (dry run)", operation) diff --git a/pkg/cmd/delete/delete_test.go b/pkg/cmd/delete/delete_test.go index 14e2646a3..ab4d30388 100644 --- a/pkg/cmd/delete/delete_test.go +++ b/pkg/cmd/delete/delete_test.go @@ -972,3 +972,39 @@ func TestResourceErrors(t *testing.T) { }) } } + +func TestDeleteMessageOutput(t *testing.T) { + cmdtesting.InitTestErrorHandler(t) + _, _, rc := cmdtesting.TestData() + + tf := cmdtesting.NewTestFactory().WithNamespace("test-specific") + defer tf.Cleanup() + + codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) + + tf.UnstructuredClient = &fake.RESTClient{ + NegotiatedSerializer: resource.UnstructuredPlusDefaultContentConfig().NegotiatedSerializer, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + switch p, m := req.URL.Path, req.Method; { + case p == "/namespaces/test-specific/replicationcontrollers/redis-master" && m == "DELETE": + return &http.Response{StatusCode: http.StatusOK, Header: cmdtesting.DefaultHeader(), Body: cmdtesting.ObjBody(codec, &rc.Items[0])}, nil + default: + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + return nil, nil + } + }), + } + + streams, _, buf, _ := genericiooptions.NewTestIOStreams() + cmd := NewCmdDelete(tf, streams) + err := cmd.Flags().Set("filename", "../../../testdata/redis-master-controller.yaml") + if err != nil { + t.Errorf("unexpected error: %v", err) + } + cmd.Run(cmd, []string{}) + + if buf.String() != "replicationcontroller \"redis-master\" deleted from test-specific namespace\n" { + t.Errorf("unexpected output: %s", buf.String()) + } + +}