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(