From b1a641ca4d1b743c264f7b5a35a49d50e86de19a Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Mon, 17 Feb 2020 20:28:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E6=9C=AA=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=8E=89=E5=90=8C=E4=B8=80=E4=B8=AAnetwork=E5=BA=95?= =?UTF-8?q?=E4=B8=8B=E7=9A=84guest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/guests.go | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 9ab2bb1d62..2ccf1dd5c5 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -284,20 +284,14 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ sqlchemy.Equals(zoneTable.Field("id"), hostTable.Field("zone_id"))).Equals("manager_id", eip.ManagerId) if len(eip.NetworkId) > 0 { - network, err := eip.GetNetwork() - if err != nil { - return nil, err - } - zone := network.getZone() - sq := hostQ.Filter(sqlchemy.Equals(zoneTable.Field("id"), zone.GetId())).SubQuery() - q = q.In("host_id", sq) - } else { - region := eip.GetRegion() - regionTable := CloudregionManager.Query().SubQuery() - sq := hostQ.Join(regionTable, sqlchemy.Equals(zoneTable.Field("cloudregion_id"), regionTable.Field("id"))). - Filter(sqlchemy.Equals(regionTable.Field("id"), region.GetId())).SubQuery() - q = q.In("host_id", sq) + sq := GuestnetworkManager.Query("guest_id").Equals("network_id", eip.NetworkId).SubQuery() + q = q.NotIn("id", sq) } + region := eip.GetRegion() + regionTable := CloudregionManager.Query().SubQuery() + sq := hostQ.Join(regionTable, sqlchemy.Equals(zoneTable.Field("cloudregion_id"), regionTable.Field("id"))). + Filter(sqlchemy.Equals(regionTable.Field("id"), region.GetId())).SubQuery() + q = q.In("host_id", sq) } q, err = managedResourceFilterByRegion(q, query.RegionalFilterListInput, "host_id", func() *sqlchemy.SQuery {