From 49204f64be8e44b45b78c18d31290f94b84bee7d Mon Sep 17 00:00:00 2001 From: "Roland.Ma" Date: Fri, 24 Sep 2021 02:08:13 +0000 Subject: [PATCH] fix: duplicated items show in the list api Signed-off-by: Roland.Ma --- pkg/models/gateway/gateway.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pkg/models/gateway/gateway.go b/pkg/models/gateway/gateway.go index ec4d4d506..7f1279564 100644 --- a/pkg/models/gateway/gateway.go +++ b/pkg/models/gateway/gateway.go @@ -396,8 +396,8 @@ func (c *gatewayOperator) ListGateways(query *query.Query) (*api.ListResult, err }), }) - for _, s := range services.Items { - result = append(result, &s) + for i := range services.Items { + result = append(result, &services.Items[i]) } return v1alpha3.DefaultList(result, query, c.compare, c.filter, c.transform), nil @@ -447,16 +447,25 @@ func (c *gatewayOperator) compare(left runtime.Object, right runtime.Object, fie } func (c *gatewayOperator) filter(object runtime.Object, filter query.Filter) bool { + var objMeta v1.ObjectMeta + var namesapce string + gateway, ok := object.(*v1alpha1.Gateway) if !ok { - return false + svc, ok := object.(*corev1.Service) + if !ok { + return false + } + namesapce = svc.Labels["project"] + } else { + namesapce = gateway.Spec.Conroller.Scope.Namespace } switch filter.Field { case query.FieldNamespace: - return strings.Compare(gateway.Spec.Conroller.Scope.Namespace, string(filter.Value)) == 0 + return strings.Compare(namesapce, string(filter.Value)) == 0 default: - return v1alpha3.DefaultObjectMetaFilter(gateway.ObjectMeta, filter) + return v1alpha3.DefaultObjectMetaFilter(objMeta, filter) } }