diff --git a/pkg/apiserver/query/field.go b/pkg/apiserver/query/field.go index 07105d398..bff421ee6 100644 --- a/pkg/apiserver/query/field.go +++ b/pkg/apiserver/query/field.go @@ -21,6 +21,7 @@ type Value string const ( FieldName = "name" + FieldAlias = "alias" FieldNames = "names" FieldUID = "uid" FieldCreationTimeStamp = "creationTimestamp" diff --git a/pkg/models/resources/v1alpha3/interface.go b/pkg/models/resources/v1alpha3/interface.go index 3f0c2de1b..690efa3c0 100644 --- a/pkg/models/resources/v1alpha3/interface.go +++ b/pkg/models/resources/v1alpha3/interface.go @@ -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: