apis/resources: support for searching alias in annotations (#5807)
This commit is contained in:
@@ -21,6 +21,7 @@ type Value string
|
||||
|
||||
const (
|
||||
FieldName = "name"
|
||||
FieldAlias = "alias"
|
||||
FieldNames = "names"
|
||||
FieldUID = "uid"
|
||||
FieldCreationTimeStamp = "creationTimestamp"
|
||||
|
||||
@@ -20,14 +20,14 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
"kubesphere.io/kubesphere/pkg/api"
|
||||
"kubesphere.io/kubesphere/pkg/apiserver/query"
|
||||
"kubesphere.io/kubesphere/pkg/constants"
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
@@ -120,13 +120,19 @@ func DefaultObjectMetaFilter(item metav1.ObjectMeta, filter query.Filter) bool {
|
||||
// /namespaces?page=1&limit=10&name=default
|
||||
case query.FieldName:
|
||||
return strings.Contains(item.Name, string(filter.Value))
|
||||
// /namespaces?page=1&limit=10&uid=a8a8d6cf-f6a5-4fea-9c1b-e57610115706
|
||||
// /clusters?page=1&limit=10&alias=xxx
|
||||
case query.FieldAlias:
|
||||
if item.Annotations == nil {
|
||||
return false
|
||||
}
|
||||
return strings.Contains(item.Annotations[constants.DisplayNameAnnotationKey], string(filter.Value))
|
||||
// /namespaces?page=1&limit=10&uid=a8a8d6cf-f6a5-4fea-9c1b-e57610115706
|
||||
case query.FieldUID:
|
||||
return strings.Compare(string(item.UID), string(filter.Value)) == 0
|
||||
// /deployments?page=1&limit=10&namespace=kubesphere-system
|
||||
// /deployments?page=1&limit=10&namespace=kubesphere-system
|
||||
case query.FieldNamespace:
|
||||
return strings.Compare(item.Namespace, string(filter.Value)) == 0
|
||||
// /namespaces?page=1&limit=10&ownerReference=a8a8d6cf-f6a5-4fea-9c1b-e57610115706
|
||||
// /namespaces?page=1&limit=10&ownerReference=a8a8d6cf-f6a5-4fea-9c1b-e57610115706
|
||||
case query.FieldOwnerReference:
|
||||
for _, ownerReference := range item.OwnerReferences {
|
||||
if strings.Compare(string(ownerReference.UID), string(filter.Value)) == 0 {
|
||||
@@ -134,7 +140,7 @@ func DefaultObjectMetaFilter(item metav1.ObjectMeta, filter query.Filter) bool {
|
||||
}
|
||||
}
|
||||
return false
|
||||
// /namespaces?page=1&limit=10&ownerKind=Workspace
|
||||
// /namespaces?page=1&limit=10&ownerKind=Workspace
|
||||
case query.FieldOwnerKind:
|
||||
for _, ownerReference := range item.OwnerReferences {
|
||||
if strings.Compare(ownerReference.Kind, string(filter.Value)) == 0 {
|
||||
@@ -142,10 +148,10 @@ func DefaultObjectMetaFilter(item metav1.ObjectMeta, filter query.Filter) bool {
|
||||
}
|
||||
}
|
||||
return false
|
||||
// /namespaces?page=1&limit=10&annotation=openpitrix_runtime
|
||||
// /namespaces?page=1&limit=10&annotation=openpitrix_runtime
|
||||
case query.FieldAnnotation:
|
||||
return labelMatch(item.Annotations, string(filter.Value))
|
||||
// /namespaces?page=1&limit=10&label=kubesphere.io/workspace:system-workspace
|
||||
// /namespaces?page=1&limit=10&label=kubesphere.io/workspace:system-workspace
|
||||
case query.FieldLabel:
|
||||
return labelMatch(item.Labels, string(filter.Value))
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user