From 9ebbd6cebcd8370e5cb1168de25b4ac57dd49159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 21 May 2025 19:27:01 +0800 Subject: [PATCH] fix(region): add filter for secgroup rule (#22578) --- pkg/apis/compute/secgroup.go | 2 ++ pkg/compute/models/secgroupresource.go | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pkg/apis/compute/secgroup.go b/pkg/apis/compute/secgroup.go index 934a1c84ff..687ea53604 100644 --- a/pkg/apis/compute/secgroup.go +++ b/pkg/apis/compute/secgroup.go @@ -255,6 +255,8 @@ type SecgroupResourceInput struct { type SecgroupFilterListInput struct { SecgroupResourceInput + RegionalFilterListInput + ManagedResourceListInput // 以安全组排序 OrderBySecgroup string `json:"order_by_secgroup"` diff --git a/pkg/compute/models/secgroupresource.go b/pkg/compute/models/secgroupresource.go index 3f482a1a22..04765211da 100644 --- a/pkg/compute/models/secgroupresource.go +++ b/pkg/compute/models/secgroupresource.go @@ -125,10 +125,23 @@ func (manager *SSecurityGroupResourceBaseManager) ListItemFilter( } q = q.Equals("secgroup_id", secgrpObj.GetId()) } + if len(query.SecgroupName) > 0 { sq := SecurityGroupManager.Query("id").Like("name", "%"+query.SecgroupName+"%") q = q.In("secgroup_id", sq.SubQuery()) } + + var err error + q, err = manager.SManagedResourceBaseManager.ListItemFilter(ctx, q, userCred, query.ManagedResourceListInput) + if err != nil { + return nil, errors.Wrap(err, "SManagedResourceBaseManager.ListItemFilter") + } + + q, err = manager.SCloudregionResourceBaseManager.ListItemFilter(ctx, q, userCred, query.RegionalFilterListInput) + if err != nil { + return nil, errors.Wrap(err, "SCloudregionResourceBaseManager.ListItemFilter") + } + return q, nil }