Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bfacc92

Browse files
committed
wip delete fails on notfound
1 parent b8a808b commit bfacc92

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

pkg/kubectl/cmd/delete.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"github.com/spf13/cobra"
2424

2525
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
26-
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
2726
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
2827
cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
2928
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
@@ -73,6 +72,7 @@ func NewCmdDelete(f *cmdutil.Factory, out io.Writer) *cobra.Command {
7372
kubectl.AddJsonFilenameFlag(cmd, &filenames, usage)
7473
cmd.Flags().StringP("selector", "l", "", "Selector (label query) to filter on")
7574
cmd.Flags().Bool("all", false, "[-all] to select all the specified resources")
75+
cmd.Flags().Bool("ignore-not-found", false, "Treat \"resource not found\" as success")
7676
cmd.Flags().Bool("cascade", true, "If true, cascade the delete resources managed by this resource (e.g. Pods created by a ReplicationController). Default true.")
7777
cmd.Flags().Int("grace-period", -1, "Period of time in seconds given to the resource to terminate gracefully. Ignored if negative.")
7878
return cmd
@@ -107,7 +107,7 @@ func RunDelete(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []str
107107

108108
func ReapResult(r *resource.Result, f *cmdutil.Factory, out io.Writer, isDefaultDelete bool, gracePeriod int) error {
109109
found := 0
110-
err := r.IgnoreErrors(errors.IsNotFound).Visit(func(info *resource.Info) error {
110+
err := r.Visit(func(info *resource.Info) error {
111111
found++
112112
reaper, err := f.Reaper(info.Mapping)
113113
if err != nil {
@@ -138,7 +138,7 @@ func ReapResult(r *resource.Result, f *cmdutil.Factory, out io.Writer, isDefault
138138

139139
func DeleteResult(r *resource.Result, out io.Writer) error {
140140
found := 0
141-
err := r.IgnoreErrors(errors.IsNotFound).Visit(func(info *resource.Info) error {
141+
err := r.Visit(func(info *resource.Info) error {
142142
found++
143143
return deleteResource(info, out)
144144
})

pkg/kubectl/cmd/delete_test.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@ package cmd
1818

1919
import (
2020
"bytes"
21+
"fmt"
2122
"net/http"
2223
"strings"
2324
"testing"
2425

2526
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
27+
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
2628
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi"
2729
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
30+
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
2831
)
2932

3033
func TestDeleteObjectByTuple(t *testing.T) {
@@ -120,7 +123,7 @@ func TestDeleteObject(t *testing.T) {
120123
}
121124
}
122125

123-
func TestDeleteObjectIgnoreNotFound(t *testing.T) {
126+
func TestDeleteObjectNotFound(t *testing.T) {
124127
f, tf, codec := NewAPIFactory()
125128
tf.Printer = &testPrinter{}
126129
tf.Client = &client.FakeRESTClient{
@@ -143,7 +146,8 @@ func TestDeleteObjectIgnoreNotFound(t *testing.T) {
143146
cmd.Flags().Set("cascade", "false")
144147
cmd.Run(cmd, []string{})
145148

146-
if buf.String() != "" {
149+
err := errors.NewNotFound("replicationcontrollers", "redis-master")
150+
if buf.String() != fmt.Sprintf("Error from server: %s", err.Error()) {
147151
t.Errorf("unexpected output: %s", buf.String())
148152
}
149153
}
@@ -174,9 +178,17 @@ func TestDeleteMultipleObject(t *testing.T) {
174178
cmd.Flags().Set("filename", "../../../examples/guestbook/redis-master-controller.json")
175179
cmd.Flags().Set("filename", "../../../examples/guestbook/frontend-service.json")
176180
cmd.Flags().Set("cascade", "false")
177-
cmd.Run(cmd, []string{})
178181

179-
if buf.String() != "replicationcontrollers/redis-master\nservices/frontend\n" {
182+
var filenames *util.StringList
183+
fname := cmd.Flags().Lookup("filename").Value
184+
filenames = util.StringList(*fname)
185+
err := RunDelete(f, buf, cmd, []string{}, filenames)
186+
if err == nil {
187+
t.Errorf("unexpected output: %s", buf.String())
188+
}
189+
// cmd.Run(cmd, []string{})
190+
191+
if buf.String() != fmt.Sprintf("replicationcontrollers/redis-master\nservices/frontend\nError from server: %s", err.Error()) {
180192
t.Errorf("unexpected output: %s", buf.String())
181193
}
182194
}

0 commit comments

Comments
 (0)