diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index 839c60567c..6b459e0b5a 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -741,6 +741,8 @@ func calculateListResult(data []jsonutils.JSONObject, total, limit, offset int64 // do limit if limit > 0 && total-offset > limit { data = data[:limit] + } else { + data = data[:total-offset] } } diff --git a/pkg/monitor/models/suggestsysrule.go b/pkg/monitor/models/suggestsysrule.go index 7049914d31..dba047a9e8 100644 --- a/pkg/monitor/models/suggestsysrule.go +++ b/pkg/monitor/models/suggestsysrule.go @@ -251,6 +251,22 @@ func (self *SSuggestSysRule) PerformEnable(ctx context.Context, userCred mcclien return nil, nil } +func (self *SSuggestSysRule) AllowPerformDisable(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool { + return db.IsAdminAllowPerform(userCred, self, "disable") +} + +func (self *SSuggestSysRule) PerformDisable(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) (jsonutils.JSONObject, error) { + if self.Enabled.IsTrue() { + db.Update(self, func() error { + self.Enabled = tristate.False + return nil + }) + db.OpsLog.LogEvent(self, db.ACT_DISABLE, "", userCred) + self.PostUpdate(ctx, userCred, query, data) + } + return nil, nil +} + func (self *SSuggestSysRuleManager) AllowGetPropertyRuleType(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) bool { return true }