From 8e7b136c4bb922e33d7888c7fc37d1b2103b4062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 28 May 2025 18:38:48 +0800 Subject: [PATCH] fix(region): secgroup rule filter (#22620) --- pkg/compute/models/secgroupresource.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/secgroupresource.go b/pkg/compute/models/secgroupresource.go index 04765211da..c3f8beb99a 100644 --- a/pkg/compute/models/secgroupresource.go +++ b/pkg/compute/models/secgroupresource.go @@ -132,15 +132,19 @@ func (manager *SSecurityGroupResourceBaseManager) ListItemFilter( } var err error - q, err = manager.SManagedResourceBaseManager.ListItemFilter(ctx, q, userCred, query.ManagedResourceListInput) + subq := SecurityGroupManager.Query("id").Snapshot() + subq, err = manager.SManagedResourceBaseManager.ListItemFilter(ctx, subq, userCred, query.ManagedResourceListInput) if err != nil { return nil, errors.Wrap(err, "SManagedResourceBaseManager.ListItemFilter") } - q, err = manager.SCloudregionResourceBaseManager.ListItemFilter(ctx, q, userCred, query.RegionalFilterListInput) + subq, err = manager.SCloudregionResourceBaseManager.ListItemFilter(ctx, subq, userCred, query.RegionalFilterListInput) if err != nil { return nil, errors.Wrap(err, "SCloudregionResourceBaseManager.ListItemFilter") } + if subq.IsAltered() { + q = q.Filter(sqlchemy.In(q.Field("secgroup_id"), subq.SubQuery())) + } return q, nil }