From 7f467ab3a700f99df1b7e64ae401866a7b9fae3d Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Thu, 5 Mar 2020 19:31:26 +0800 Subject: [PATCH] enable network list filter by host show vpc networks --- pkg/compute/models/networks.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index a43ac94910..d2f9b456ae 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -1797,8 +1797,17 @@ func (manager *SNetworkManager) ListItemFilter(ctx context.Context, q *sqlchemy. if err != nil { return nil, httperrors.NewResourceNotFoundError2(HostManager.Keyword(), hostStr) } + host := hostObj.(*SHost) sq := HostwireManager.Query("wire_id").Equals("host_id", hostObj.GetId()) - q = q.Filter(sqlchemy.In(q.Field("wire_id"), sq.SubQuery())) + if len(host.OvnVersion) > 0 { + wireQuery := WireManager.Query("id").IsNotNull("vpc_id") + q = q.Filter(sqlchemy.OR( + sqlchemy.In(q.Field("wire_id"), wireQuery.SubQuery()), + sqlchemy.In(q.Field("wire_id"), sq.SubQuery())), + ) + } else { + q = q.Filter(sqlchemy.In(q.Field("wire_id"), sq.SubQuery())) + } } if len(input.Ip) > 0 {