From 2a7f9ab516c2c70a679714239ac01126d9fc8f91 Mon Sep 17 00:00:00 2001 From: zhaoxiangchun <1422928955@qq.com> Date: Fri, 27 Nov 2020 20:53:03 +0800 Subject: [PATCH] fix(monitor): delete suggestConfig auto init data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.删除忽略列表之前逻辑初始化生成的配置config 2.忽略列表默认查询ignore=true的数据 3.修复建议列表 忽略一类建议不生效的问题 --- .../alerting/conditions/nodataquery.go | 2 -- pkg/monitor/models/commonalert.go | 1 - pkg/monitor/models/suggestsysalert.go | 2 ++ pkg/monitor/models/suggestsysruleconfig.go | 30 +++++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/pkg/monitor/alerting/conditions/nodataquery.go b/pkg/monitor/alerting/conditions/nodataquery.go index 893037baed..2c318efbfd 100644 --- a/pkg/monitor/alerting/conditions/nodataquery.go +++ b/pkg/monitor/alerting/conditions/nodataquery.go @@ -6,7 +6,6 @@ import ( "strings" "yunion.io/x/jsonutils" - "yunion.io/x/log" "yunion.io/x/pkg/errors" "yunion.io/x/onecloud/pkg/apis/monitor" @@ -58,7 +57,6 @@ serLoop: if err != nil { return nil, errors.Wrap(err, "NoDataQueryCondition NewEvalMatch error") } - log.Errorf("nodata match:%#v", match) normalHostIds[val] = match continue serLoop } diff --git a/pkg/monitor/models/commonalert.go b/pkg/monitor/models/commonalert.go index d278d3836e..61053fcd0d 100644 --- a/pkg/monitor/models/commonalert.go +++ b/pkg/monitor/models/commonalert.go @@ -761,7 +761,6 @@ func (alert *SCommonAlert) ValidateUpdateData( return data, errors.Wrap(err, "metric_query Unmarshal error") } scope, _ := data.GetString("scope") - log.Errorf("update query from:%s", metricQuery.From) err = CommonAlertManager.ValidateMetricQuery(metricQuery, scope, userCred) if err != nil { return data, errors.Wrap(err, "metric query error") diff --git a/pkg/monitor/models/suggestsysalert.go b/pkg/monitor/models/suggestsysalert.go index a32bed7035..771fbfcab1 100644 --- a/pkg/monitor/models/suggestsysalert.go +++ b/pkg/monitor/models/suggestsysalert.go @@ -379,6 +379,8 @@ func (self *SSuggestSysAlert) GetSuggestConfig(scope rbacutils.TRbacScope, domai q := SuggestSysRuleConfigManager.Query().Equals("type", drvType).Equals("resource_type", resType) if !batchIgnore { q = q.Equals("resource_id", resId) + } else { + q = q.IsNull("resource_id") } q = SuggestSysRuleConfigManager.FilterByScope(q, scope, scopeId) configs := make([]SSuggestSysRuleConfig, 0) diff --git a/pkg/monitor/models/suggestsysruleconfig.go b/pkg/monitor/models/suggestsysruleconfig.go index 61c1839de8..ccc7f79c4f 100644 --- a/pkg/monitor/models/suggestsysruleconfig.go +++ b/pkg/monitor/models/suggestsysruleconfig.go @@ -28,6 +28,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/auth" "yunion.io/x/onecloud/pkg/util/rbacutils" "yunion.io/x/onecloud/pkg/util/stringutils2" ) @@ -89,6 +90,34 @@ func (man *SSuggestSysRuleConfigManager) InitScopeConfigs(ctx context.Context, u } } +func (manager *SSuggestSysRuleConfigManager) Init() error { + return nil +} + +func (man *SSuggestSysRuleConfigManager) Run(ctx context.Context) error { + return man.deleteUnusedConfig() +} + +func (manager *SSuggestSysRuleConfigManager) deleteUnusedConfig() error { + userCred := auth.AdminCredential() + configs, err := manager.GetConfigsByScope(rbacutils.ScopeNone, userCred, false) + if err != nil { + return errors.Wrap(err, "SSuggestSysRuleConfigManager get ignore is false configs error") + } + for i, _ := range configs { + err := (&configs[i]).CustomizeDelete(context.Background(), userCred, jsonutils.NewDict(), + jsonutils.NewDict()) + if err != nil { + return errors.Wrap(err, "init CustomizeDelete SuggestSysRuleConfig error") + } + err = (&configs[i]).Delete(context.Background(), userCred) + if err != nil { + return errors.Wrap(err, "init Delete SuggestSysRuleConfig error") + } + } + return nil +} + const ( SUGGEST_SCOPE_CONFIG = "suggest_scope_config" ) @@ -434,6 +463,7 @@ func (man *SSuggestSysRuleConfigManager) ListItemFilter(ctx context.Context, q * if query.ResourceType != nil { q.Equals("resource_type", *query.ResourceType) } + q.IsTrue("ignore_alert") if query.IgnoreAlert != nil { if *query.IgnoreAlert { q.IsTrue("ignore_alert")