Merge pull request #110093 from azylinski/automated-cherry-pick-of-#110009-upstream-release-1.21
Automated cherry pick of #110009: Fix requests scope classification Kubernetes-commit: a347c1921b5e20428c920291b561b7ba98220a6f
This commit is contained in:
commit
abbd48dff0
|
@ -458,12 +458,12 @@ func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, c
|
|||
|
||||
// CleanScope returns the scope of the request.
|
||||
func CleanScope(requestInfo *request.RequestInfo) string {
|
||||
if requestInfo.Name != "" || requestInfo.Verb == "create" {
|
||||
return "resource"
|
||||
}
|
||||
if requestInfo.Namespace != "" {
|
||||
return "namespace"
|
||||
}
|
||||
if requestInfo.Name != "" {
|
||||
return "resource"
|
||||
}
|
||||
if requestInfo.IsResourceRequest {
|
||||
return "cluster"
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ import (
|
|||
"net/http"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"k8s.io/apiserver/pkg/endpoints/request"
|
||||
)
|
||||
|
||||
func TestCleanVerb(t *testing.T) {
|
||||
|
@ -132,3 +134,59 @@ func TestCleanVerb(t *testing.T) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestCleanScope(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
requestInfo *request.RequestInfo
|
||||
expectedScope string
|
||||
}{
|
||||
{
|
||||
name: "empty scope",
|
||||
requestInfo: &request.RequestInfo{},
|
||||
expectedScope: "",
|
||||
},
|
||||
{
|
||||
name: "resource scope",
|
||||
requestInfo: &request.RequestInfo{
|
||||
Name: "my-resource",
|
||||
Namespace: "my-namespace",
|
||||
IsResourceRequest: false,
|
||||
},
|
||||
expectedScope: "resource",
|
||||
},
|
||||
{
|
||||
name: "POST resource scope",
|
||||
requestInfo: &request.RequestInfo{
|
||||
Verb: "create",
|
||||
Namespace: "my-namespace",
|
||||
IsResourceRequest: false,
|
||||
},
|
||||
expectedScope: "resource",
|
||||
},
|
||||
{
|
||||
name: "namespace scope",
|
||||
requestInfo: &request.RequestInfo{
|
||||
Namespace: "my-namespace",
|
||||
IsResourceRequest: false,
|
||||
},
|
||||
expectedScope: "namespace",
|
||||
},
|
||||
{
|
||||
name: "cluster scope",
|
||||
requestInfo: &request.RequestInfo{
|
||||
Namespace: "",
|
||||
IsResourceRequest: true,
|
||||
},
|
||||
expectedScope: "cluster",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
if CleanScope(test.requestInfo) != test.expectedScope {
|
||||
t.Errorf("failed to clean scope: %v", test.requestInfo)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue