fix: label filter

Signed-off-by: hongming <talonwan@yunify.com>
This commit is contained in:
hongming
2020-06-16 13:02:34 +08:00
parent 4fcaa78b45
commit c7a9f103ee
4 changed files with 9 additions and 11 deletions

View File

@@ -5,7 +5,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"kubesphere.io/kubesphere/pkg/api"
"kubesphere.io/kubesphere/pkg/apiserver/query"
"kubesphere.io/kubesphere/pkg/constants"
"sort"
"strings"
)
@@ -92,7 +91,7 @@ func DefaultObjectMetaFilter(item metav1.ObjectMeta, filter query.Filter) bool {
switch filter.Field {
case query.FieldNames:
for _, name := range strings.Split(string(filter.Value), ",") {
if item.Name == name || item.Annotations[constants.DisplayNameAnnotationKey] == name {
if item.Name == name {
return true
}
}
@@ -133,7 +132,6 @@ func DefaultObjectMetaFilter(item metav1.ObjectMeta, filter query.Filter) bool {
}
}
// Filter format (key!?=)?value,if the key is defined, the key must match exactly, value match according to strings.Contains.
func labelMatch(labels map[string]string, filter string) bool {
fields := strings.SplitN(filter, "=", 2)
var key, value string
@@ -150,11 +148,11 @@ func labelMatch(labels map[string]string, filter string) bool {
}
for k, v := range labels {
if opposite {
if (key == "" || k == key) && !strings.Contains(v, value) {
if (key == "" || k == key) && v != value {
return true
}
} else {
if (key == "" || k == key) && strings.Contains(v, value) {
if (key == "" || k == key) && v == value {
return true
}
}