Skip to content

Commit 893ece7

Browse files
Merge pull request #22814 from soltysh/bug1699285
Bug 1699285: Add warning when unrecognized resource is found
2 parents 6df94be + c4c5c56 commit 893ece7

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

pkg/oc/cli/admin/policy/who_can.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"errors"
66
"fmt"
7+
"io"
78
"strings"
89

910
"github.com/spf13/cobra"
@@ -78,7 +79,7 @@ func (o *WhoCanOptions) complete(f kcmdutil.Factory, cmd *cobra.Command, args []
7879
fallthrough
7980
case 2:
8081
o.verb = args[0]
81-
o.resource = ResourceFor(mapper, args[1])
82+
o.resource = ResourceFor(mapper, args[1], o.ErrOut)
8283
default:
8384
return errors.New("you must specify two or three arguments: verb, resource, and optional resourceName")
8485
}
@@ -105,7 +106,7 @@ func (o *WhoCanOptions) complete(f kcmdutil.Factory, cmd *cobra.Command, args []
105106
return nil
106107
}
107108

108-
func ResourceFor(mapper meta.RESTMapper, resourceArg string) schema.GroupVersionResource {
109+
func ResourceFor(mapper meta.RESTMapper, resourceArg string, errOut io.Writer) schema.GroupVersionResource {
109110
fullySpecifiedGVR, groupResource := schema.ParseResourceArg(strings.ToLower(resourceArg))
110111
gvr := schema.GroupVersionResource{}
111112
if fullySpecifiedGVR != nil {
@@ -115,6 +116,11 @@ func ResourceFor(mapper meta.RESTMapper, resourceArg string) schema.GroupVersion
115116
var err error
116117
gvr, err = mapper.ResourceFor(groupResource.WithVersion(""))
117118
if err != nil {
119+
if len(groupResource.Group) == 0 {
120+
fmt.Fprintf(errOut, "Warning: the server doesn't have a resource type '%s'\n", groupResource.Resource)
121+
} else {
122+
fmt.Fprintf(errOut, "Warning: the server doesn't have a resource type '%s' in group '%s'\n", groupResource.Resource, groupResource.Group)
123+
}
118124
return schema.GroupVersionResource{Resource: resourceArg}
119125
}
120126
}

pkg/oc/cli/policy/cani/cani.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func (o *CanIOptions) Complete(cmd *cobra.Command, f kcmdutil.Factory, args []st
116116
return err
117117
}
118118
o.Verb = args[0]
119-
o.Resource = policy.ResourceFor(restMapper, args[1])
119+
o.Resource = policy.ResourceFor(restMapper, args[1], o.ErrOut)
120120
default:
121121
if !o.ListAll {
122122
return errors.New("you must specify two or three arguments: verb, resource, and optional resourceName")

0 commit comments

Comments
 (0)