From bfb7caaaf3c26e194cf935f9c8a78fac138d6a2c Mon Sep 17 00:00:00 2001 From: Jian Qiu Date: Sat, 18 Jan 2025 06:15:15 +0800 Subject: [PATCH] fix: add summary statistics switch (#21987) Co-authored-by: Qiu Jian --- pkg/cloudcommon/db/db_dispatcher.go | 18 +++++++++++++----- pkg/compute/models/guests.go | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index dd69b27089..5a97cc80aa 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -684,11 +684,19 @@ func ListItems(manager IModelManager, ctx context.Context, userCred mcclient.Tok var totalCnt int var totalJson jsonutils.JSONObject if pagingConf == nil { - // calculate total - totalQ := q.CountQuery() - totalCnt, totalJson, err = manager.CustomizedTotalCount(ctx, userCred, query, totalQ) - if err != nil { - return nil, errors.Wrap(err, "CustomizedTotalCount") + summaryStats := jsonutils.QueryBoolean(query, "summary_stats", false) + if summaryStats { + // calculate total + totalQ := q.CountQuery() + totalCnt, totalJson, err = manager.CustomizedTotalCount(ctx, userCred, query, totalQ) + if err != nil { + return nil, errors.Wrap(err, "CustomizedTotalCount") + } + } else { + totalCnt, err = q.CountWithError() + if err != nil { + return nil, errors.Wrap(err, "CountWithError") + } } //log.Debugf("total count %d", totalCnt) if totalCnt == 0 { diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 2d1388d1ee..824c05faa7 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -884,7 +884,7 @@ func (manager *SGuestManager) initAdminSecgroupId() error { adminSecId := adminSec.Id guests := make([]SGuest, 0, 10) q := manager.Query() - q = q.In("hypervisor", []string{api.HYPERVISOR_KVM}).IsNullOrEmpty("admin_secgrp_id") + q = q.In("hypervisor", []string{api.HYPERVISOR_KVM, api.HYPERVISOR_POD}).IsNullOrEmpty("admin_secgrp_id") err := db.FetchModelObjects(manager, q, &guests) if err != nil { return errors.Wrap(err, "db.FetchModelObjects")