diff --git a/pkg/compute/usages/handler.go b/pkg/compute/usages/handler.go index d77035ec62..f73ca2f9f9 100644 --- a/pkg/compute/usages/handler.go +++ b/pkg/compute/usages/handler.go @@ -228,8 +228,12 @@ func getSystemGeneralUsage( var pcpuTotal float64 hostEnabledUsage := HostEnabledUsage(userToken, "", userCred, rbacscope.ScopeSystem, rangeObjs, hostTypes, []string{api.HostResourceTypeShared}, providers, brands, cloudEnv, policyResult) - pmemTotal = float64(hostEnabledUsage.Get("enabled_hosts.memory").(int64)) - pcpuTotal = float64(hostEnabledUsage.Get("enabled_hosts.cpu").(int64)) + if hostEnabledUsage.Get("enabled_hosts.memory") != nil { + pmemTotal = float64(hostEnabledUsage.Get("enabled_hosts.memory").(int64)) + } + if hostEnabledUsage.Get("enabled_hosts.cpu") != nil { + pcpuTotal = float64(hostEnabledUsage.Get("enabled_hosts.cpu").(int64)) + } if len(rangeObjs) > 0 && rangeObjs[0].Keyword() == "host" { host := rangeObjs[0].(*models.SHost) pmemTotal = float64(host.MemSize) @@ -241,8 +245,14 @@ func getSystemGeneralUsage( } guestRunningUsage := GuestRunningUsage(userToken, "all.running_servers", rbacscope.ScopeSystem, nil, rangeObjs, hostTypes, []string{api.HostResourceTypeShared}, providers, brands, cloudEnv, includeSystem, policyResult) - runningMem := guestRunningUsage.Get("all.running_servers.memory").(int) - runningCpu := guestRunningUsage.Get("all.running_servers.cpu").(int) + var runningMem int + var runningCpu int + if guestRunningUsage.Get("all.running_servers.memory") != nil { + runningMem = guestRunningUsage.Get("all.running_servers.memory").(int) + } + if guestRunningUsage.Get("all.running_servers.cpu") != nil { + runningCpu = guestRunningUsage.Get("all.running_servers.cpu").(int) + } // containerRunningUsage := containerUsage("all.containers", rbacscope.ScopeSystem, nil, rangeObjs, hostTypes, nil, providers, brands, cloudEnv) // containerRunningMem := containerRunningUsage.Get("all.containers.memory").(int) @@ -351,12 +361,22 @@ func getDomainGeneralUsage(userToken mcclient.TokenCredential, scope rbacscope.T var pcpuTotal float64 hostEnabledUsage := HostEnabledUsage(userToken, "", cred, rbacscope.ScopeDomain, rangeObjs, hostTypes, []string{api.HostResourceTypeShared}, providers, brands, cloudEnv, policyResult) - pmemTotal = float64(hostEnabledUsage.Get("domain.enabled_hosts.memory").(int64)) - pcpuTotal = float64(hostEnabledUsage.Get("domain.enabled_hosts.cpu").(int64)) + if hostEnabledUsage.Get("domain.enabled_hosts.memory") != nil { + pmemTotal = float64(hostEnabledUsage.Get("domain.enabled_hosts.memory").(int64)) + } + if hostEnabledUsage.Get("domain.enabled_hosts.cpu") != nil { + pcpuTotal = float64(hostEnabledUsage.Get("domain.enabled_hosts.cpu").(int64)) + } guestRunningUsage := GuestRunningUsage(userToken, "domain.running_servers", rbacscope.ScopeDomain, cred, rangeObjs, hostTypes, []string{api.HostResourceTypeShared}, providers, brands, cloudEnv, false, policyResult) - runningMem := guestRunningUsage.Get("domain.running_servers.memory").(int) - runningCpu := guestRunningUsage.Get("domain.running_servers.cpu").(int) + var runningMem int + var runningCpu int + if guestRunningUsage.Get("domain.running_servers.memory") != nil { + runningMem = guestRunningUsage.Get("domain.running_servers.memory").(int) + } + if guestRunningUsage.Get("domain.running_servers.cpu") != nil { + runningCpu = guestRunningUsage.Get("domain.running_servers.cpu").(int) + } runningCpuCmtRate := 0.0 runningMemCmtRate := 0.0 diff --git a/pkg/keystone/models/domains.go b/pkg/keystone/models/domains.go index c9b45de9bb..85b4294b60 100644 --- a/pkg/keystone/models/domains.go +++ b/pkg/keystone/models/domains.go @@ -216,7 +216,7 @@ func (manager *SDomainManager) ListItemFilter( if !query.PolicyDomainTags.IsEmpty() { policyFilters := tagutils.STagFilters{} - policyFilters.AddNoFilters(query.PolicyDomainTags) + policyFilters.AddFilters(query.PolicyDomainTags) q = db.ObjectIdQueryWithTagFilters(q, "id", "domain", policyFilters) }