mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Merge pull request #103565 from zhan849/harry/clean-scope-fix
fix CleanScope so we can resolve correct verb for apiserver_request_terminations_total
This commit is contained in:
commit
2cd5c54f39
@ -514,12 +514,12 @@ func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, c
|
|||||||
|
|
||||||
// CleanScope returns the scope of the request.
|
// CleanScope returns the scope of the request.
|
||||||
func CleanScope(requestInfo *request.RequestInfo) string {
|
func CleanScope(requestInfo *request.RequestInfo) string {
|
||||||
if requestInfo.Namespace != "" {
|
|
||||||
return "namespace"
|
|
||||||
}
|
|
||||||
if requestInfo.Name != "" {
|
if requestInfo.Name != "" {
|
||||||
return "resource"
|
return "resource"
|
||||||
}
|
}
|
||||||
|
if requestInfo.Namespace != "" {
|
||||||
|
return "namespace"
|
||||||
|
}
|
||||||
if requestInfo.IsResourceRequest {
|
if requestInfo.IsResourceRequest {
|
||||||
return "cluster"
|
return "cluster"
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apiserver/pkg/endpoints/request"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCleanVerb(t *testing.T) {
|
func TestCleanVerb(t *testing.T) {
|
||||||
@ -109,3 +111,50 @@ 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: "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
Block a user