forbid kubectl edit an empty list

pull/6/head
Di Xu 2017-08-06 10:59:33 +08:00
parent f75f49e7a0
commit 6b2f3c81e2
4 changed files with 28 additions and 5 deletions

View File

@ -0,0 +1,9 @@
{
"kind": "ConfigMapList",
"apiVersion": "v1",
"metadata": {
"selfLink": "/api/v1/namespaces/edit-test/configmaps",
"resourceVersion": "252"
},
"items": []
}

View File

@ -0,0 +1,15 @@
description: add a testcase description
mode: edit
args:
- configmap
namespace: "edit-test"
expectedStderr:
- edit cancelled, no objects found.
expectedExitCode: 1
steps:
- type: request
expectedMethod: GET
expectedPath: /api/v1/namespaces/edit-test/configmaps
expectedInput: 0.request
resultingStatusCode: 200
resultingOutput: 0.response

View File

@ -336,6 +336,9 @@ func (o *EditOptions) Run() error {
if err != nil {
return err
}
if len(infos) == 0 {
return errors.New("edit cancelled, no objects found.")
}
return editFn(infos)
case ApplyEditMode:
infos, err := o.OriginalResult.Infos()
@ -500,11 +503,7 @@ func getPrinter(format string) *editPrinterOptions {
}
}
func (o *EditOptions) visitToPatch(
originalInfos []*resource.Info,
patchVisitor resource.Visitor,
results *editResults,
) error {
func (o *EditOptions) visitToPatch(originalInfos []*resource.Info, patchVisitor resource.Visitor, results *editResults) error {
err := patchVisitor.Visit(func(info *resource.Info, incomingErr error) error {
editObjUID, err := meta.NewAccessor().UID(info.Object)
if err != nil {