mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): show status info with list api (#20944)
This commit is contained in:
@@ -112,6 +112,28 @@ func (manager *SVirtualResourceBaseManager) GetPropertyStatistics(ctx context.Co
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (manager *SVirtualResourceBaseManager) CustomizedTotalCount(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, totalQ *sqlchemy.SQuery) (int, jsonutils.JSONObject, error) {
|
||||
results := struct {
|
||||
apis.TotalCountBase
|
||||
StatusInfo []apis.StatusStatisticStatusInfo
|
||||
}{}
|
||||
|
||||
var err error
|
||||
results.Count, err = totalQ.CountWithError()
|
||||
if err != nil {
|
||||
return -1, nil, errors.Wrapf(err, "CountWithError")
|
||||
}
|
||||
|
||||
totalSQ := totalQ.ResetFields().SubQuery()
|
||||
statQ := totalSQ.Query(totalSQ.Field("status"), sqlchemy.COUNT("total_count", totalSQ.Field("id")), sqlchemy.SUM("pending_deleted_count", totalSQ.Field("pending_deleted")))
|
||||
statQ = statQ.GroupBy(totalSQ.Field("status"))
|
||||
err = statQ.All(&results.StatusInfo)
|
||||
if err != nil {
|
||||
return -1, nil, errors.Wrapf(err, "status query")
|
||||
}
|
||||
return results.Count, jsonutils.Marshal(results), nil
|
||||
}
|
||||
|
||||
func (manager *SVirtualResourceBaseManager) GetPropertyProjectStatistics(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) ([]apis.ProjectStatistic, error) {
|
||||
im, ok := manager.GetVirtualObject().(IModelManager)
|
||||
if !ok {
|
||||
|
||||
@@ -6849,9 +6849,15 @@ func (manager *SGuestManager) CustomizedTotalCount(ctx context.Context, userCred
|
||||
return -1, nil, errors.Wrap(err, "SGuestManager query total_disk")
|
||||
}
|
||||
|
||||
// log.Debugf("CustomizedTotalCount %s", jsonutils.Marshal(results))
|
||||
_, statusInfo, err := manager.SVirtualResourceBaseManager.CustomizedTotalCount(ctx, userCred, query, totalQ)
|
||||
if err != nil {
|
||||
return -1, nil, errors.Wrapf(err, "virt.CustomizedTotalCount")
|
||||
}
|
||||
|
||||
return results.Count, jsonutils.Marshal(results), nil
|
||||
ret := jsonutils.Marshal(results).(*jsonutils.JSONDict)
|
||||
ret.Update(statusInfo)
|
||||
|
||||
return results.Count, ret, nil
|
||||
}
|
||||
|
||||
func (guest *SGuest) IsSriov() bool {
|
||||
|
||||
Reference in New Issue
Block a user