From 8fcc85745d6d5ad442ad651592f8b8733187d1a4 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Sun, 15 Nov 2020 01:39:42 +0800 Subject: [PATCH] fix: baremetal usage should exclude converted hypervisor --- pkg/compute/models/hosts.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index 370ed1f714..b2dd1f1524 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -2507,11 +2507,17 @@ func (manager *SHostManager) totalCountQ( q = q.Filter(cond(hosts.Field("enabled"))) } if !isBaremetal.IsNone() { - cond := sqlchemy.IsFalse if isBaremetal.Bool() { - cond = sqlchemy.IsTrue + q = q.Filter(sqlchemy.AND( + sqlchemy.IsTrue(hosts.Field("is_baremetal")), + sqlchemy.Equals(hosts.Field("host_type"), api.HOST_TYPE_BAREMETAL), + )) + } else { + q = q.Filter(sqlchemy.OR( + sqlchemy.IsFalse(hosts.Field("is_baremetal")), + sqlchemy.NotEquals(hosts.Field("host_type"), api.HOST_TYPE_BAREMETAL), + )) } - q = q.Filter(cond(hosts.Field("is_baremetal"))) } isolatedDevices := IsolatedDeviceManager.Query().SubQuery() iq := isolatedDevices.Query(