diff --git a/pkg/monitor/models/suggestsysrule.go b/pkg/monitor/models/suggestsysrule.go index 1a0a86b176..7831a2feef 100644 --- a/pkg/monitor/models/suggestsysrule.go +++ b/pkg/monitor/models/suggestsysrule.go @@ -62,7 +62,7 @@ type SSuggestSysRule struct { Period string `width:"256" charset:"ascii" list:"user" update:"user"` TimeFrom string `width:"256" charset:"ascii" list:"user" update:"user"` Setting jsonutils.JSONObject ` list:"user" update:"user"` - ExecTime time.Time `json:"exec_time"` + ExecTime time.Time `list:"user" update:"user"` } func (man *SSuggestSysRuleManager) FetchSuggestSysAlartSettings(ruleTypes ...string) (map[string]*monitor.SuggestSysRuleDetails, error) { @@ -194,6 +194,7 @@ func (man *SSuggestSysRuleManager) FetchCustomizeColumns( rows[i] = monitor.SuggestSysRuleDetails{ VirtualResourceDetails: virtRows[i], } + rows[i] = objs[i].(*SSuggestSysRule).getMoreDetails(rows[i]) } return rows } @@ -335,3 +336,10 @@ func (self *SSuggestSysRuleManager) GetRules(tp ...string) ([]SSuggestSysRule, e } return rules, nil } + +func (self *SSuggestSysRule) UpdateExecTime() { + db.Update(self, func() error { + self.ExecTime = time.Now() + return nil + }) +} diff --git a/pkg/monitor/suggestsysdrivers/common.go b/pkg/monitor/suggestsysdrivers/common.go index c0a1c20918..a2c4f77c4e 100644 --- a/pkg/monitor/suggestsysdrivers/common.go +++ b/pkg/monitor/suggestsysdrivers/common.go @@ -15,7 +15,10 @@ import ( "yunion.io/x/onecloud/pkg/monitor/models" ) -func DealAlertData(oldAlerts []models.SSuggestSysAlert, newAlerts []jsonutils.JSONObject) { +func DealAlertData(typ string, oldAlerts []models.SSuggestSysAlert, newAlerts []jsonutils.JSONObject) { + rules, _ := models.SuggestSysRuleManager.GetRules(typ) + rules[0].UpdateExecTime() + oldMap := make(map[string]models.SSuggestSysAlert, 0) for _, alert := range oldAlerts { oldMap[alert.ResId] = alert diff --git a/pkg/monitor/suggestsysdrivers/diskunused.go b/pkg/monitor/suggestsysdrivers/diskunused.go index c5d7f592be..71d75ae94b 100644 --- a/pkg/monitor/suggestsysdrivers/diskunused.go +++ b/pkg/monitor/suggestsysdrivers/diskunused.go @@ -48,7 +48,7 @@ func (rule *DiskUnused) Run(instance *monitor.SSuggestSysAlertSetting) { log.Errorln(errors.Wrap(err, "DiskUnused getLatestAlerts error")) return } - DealAlertData(oldAlert, newAlerts.Value()) + DealAlertData(rule.GetType(), oldAlert, newAlerts.Value()) } func (rule *DiskUnused) getLatestAlerts(instance *monitor.SSuggestSysAlertSetting) (*jsonutils.JSONArray, error) { diff --git a/pkg/monitor/suggestsysdrivers/eipunused.go b/pkg/monitor/suggestsysdrivers/eipunused.go index 5c0da2e80c..fdfd726d5e 100644 --- a/pkg/monitor/suggestsysdrivers/eipunused.go +++ b/pkg/monitor/suggestsysdrivers/eipunused.go @@ -65,7 +65,7 @@ func (rule *EIPUnused) Run(instance *monitor.SSuggestSysAlertSetting) { return } - DealAlertData(oldAlert, newAlert.Value()) + DealAlertData(rule.GetType(), oldAlert, newAlert.Value()) } func (rule *EIPUnused) getEIPUnused(instance *monitor.SSuggestSysAlertSetting) (*jsonutils.JSONArray, error) { diff --git a/pkg/monitor/suggestsysdrivers/lbunused.go b/pkg/monitor/suggestsysdrivers/lbunused.go index 35095cc341..33fa85765e 100644 --- a/pkg/monitor/suggestsysdrivers/lbunused.go +++ b/pkg/monitor/suggestsysdrivers/lbunused.go @@ -54,7 +54,7 @@ func (rule *LBUnused) Run(instance *monitor.SSuggestSysAlertSetting) { log.Errorln(errors.Wrap(err, "getEIPUnused error")) return } - DealAlertData(oldAlert, newAlert.Value()) + DealAlertData(rule.GetType(), oldAlert, newAlert.Value()) } func (rule *LBUnused) getLatestAlerts(instance *monitor.SSuggestSysAlertSetting) (*jsonutils.JSONArray, error) { diff --git a/pkg/monitor/suggestsysdrivers/scaledown.go b/pkg/monitor/suggestsysdrivers/scaledown.go index d474cc7e25..1951fc2f6d 100644 --- a/pkg/monitor/suggestsysdrivers/scaledown.go +++ b/pkg/monitor/suggestsysdrivers/scaledown.go @@ -92,7 +92,7 @@ func (rule *ScaleDown) Run(instance *monitor.SSuggestSysAlertSetting) { log.Errorln(err) return } - DealAlertData(oldAlert, newAlert.Value()) + DealAlertData(rule.GetType(), oldAlert, newAlert.Value()) } func (rule *ScaleDown) getLatestAlerts(instance *monitor.SSuggestSysAlertSetting) (*jsonutils.JSONArray, error) {