From 5f6330dcaf943618eabef3b4bcdac59e54e6b128 Mon Sep 17 00:00:00 2001 From: zhaoxiangchun <1422928955@qq.com> Date: Fri, 5 Nov 2021 14:12:04 +0800 Subject: [PATCH] fix(monitor): monitor host query fix --- pkg/monitor/alerting/conditions/query.go | 1 + pkg/monitor/models/monitor_resource.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/pkg/monitor/alerting/conditions/query.go b/pkg/monitor/alerting/conditions/query.go index 9b109340c7..d96c2f2aad 100644 --- a/pkg/monitor/alerting/conditions/query.go +++ b/pkg/monitor/alerting/conditions/query.go @@ -564,6 +564,7 @@ func (c *QueryCondition) getOnecloudResources() ([]jsonutils.JSONObject, error) //} switch c.ResType { case monitor.METRIC_RES_TYPE_HOST: + query := jsonutils.NewDict() query.Set("host-type", jsonutils.NewString(hostconsts.TELEGRAF_TAG_KEY_HYPERVISOR)) allResources, err = ListAllResources(&mc_mds.Hosts, query) case monitor.METRIC_RES_TYPE_GUEST: diff --git a/pkg/monitor/models/monitor_resource.go b/pkg/monitor/models/monitor_resource.go index a76c62585e..fa5bc59a88 100644 --- a/pkg/monitor/models/monitor_resource.go +++ b/pkg/monitor/models/monitor_resource.go @@ -461,6 +461,26 @@ func (manager *SMonitorResourceManager) GetResourceObj(id string) (bool, jsonuti return false, nil } +func (manager *SMonitorResourceManager) GetResourceObjByResType(typ string) (bool, []jsonutils.JSONObject) { + manager.GetModelSets() + for _, set := range manager.GetModelSets().ModelSetList() { + if _, ok := set.(IMonitorResModelSet); !ok { + continue + } + if set.(IMonitorResModelSet).GetResType() != typ { + continue + } + setRv := reflect.ValueOf(set) + objects := make([]jsonutils.JSONObject, 0) + for _, kRv := range setRv.MapKeys() { + mRv := setRv.MapIndex(kRv) + objects = append(objects, jsonutils.Marshal(mRv.Interface())) + } + return true, objects + } + return false, nil +} + func (manager *SMonitorResourceManager) SyncResources(ctx context.Context, mss *MonitorResModelSets) error { userCred := auth.AdminCredential() errs := make([]error, 0)