diff --git a/server/channels/api4/system.go b/server/channels/api4/system.go index 18a78e5786..f2a4044e3e 100644 --- a/server/channels/api4/system.go +++ b/server/channels/api4/system.go @@ -857,7 +857,7 @@ func getWarnMetricsStatus(c *Context, w http.ResponseWriter, r *http.Request) { return } - status, appErr := c.App.GetWarnMetricsStatus() + status, appErr := c.App.GetWarnMetricsStatus(c.AppContext) if appErr != nil { c.Err = appErr return @@ -900,7 +900,7 @@ func sendWarnMetricAckEmail(c *Context, w http.ResponseWriter, r *http.Request) return } - appErr = c.App.NotifyAndSetWarnMetricAck(c.Params.WarnMetricId, user, ack.ForceAck, false) + appErr = c.App.NotifyAndSetWarnMetricAck(c.AppContext, c.Params.WarnMetricId, user, ack.ForceAck, false) if appErr != nil { c.Err = appErr } diff --git a/server/channels/app/admin_advisor.go b/server/channels/app/admin_advisor.go index 27c90dea2f..436589c93a 100644 --- a/server/channels/app/admin_advisor.go +++ b/server/channels/app/admin_advisor.go @@ -14,7 +14,7 @@ import ( "github.com/mattermost/mattermost/server/v8/platform/shared/mail" ) -func (a *App) GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model.AppError) { +func (a *App) GetWarnMetricsStatus(rctx request.CTX) (map[string]*model.WarnMetricStatus, *model.AppError) { systemDataList, nErr := a.Srv().Store().System().Get() if nErr != nil { return nil, model.NewAppError("GetWarnMetricsStatus", "app.system.get.app_error", nil, "", http.StatusInternalServerError).Wrap(nErr) @@ -27,7 +27,7 @@ func (a *App) GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model if strings.HasPrefix(key, model.WarnMetricStatusStorePrefix) { if warnMetric, ok := model.WarnMetricsTable[key]; ok { if !warnMetric.IsBotOnly && (value == model.WarnMetricStatusRunonce || value == model.WarnMetricStatusLimitReached) { - result[key], _ = a.getWarnMetricStatusAndDisplayTextsForId(key, nil, isE0Edition) + result[key], _ = a.getWarnMetricStatusAndDisplayTextsForId(rctx, key, nil, isE0Edition) } } } @@ -36,7 +36,7 @@ func (a *App) GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model return result, nil } -func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18n.TranslateFunc, isE0Edition bool) (*model.WarnMetricStatus, *model.WarnMetricDisplayTexts) { +func (a *App) getWarnMetricStatusAndDisplayTextsForId(rctx request.CTX, warnMetricId string, T i18n.TranslateFunc, isE0Edition bool) (*model.WarnMetricStatus, *model.WarnMetricDisplayTexts) { var warnMetricStatus *model.WarnMetricStatus var warnMetricDisplayTexts = &model.WarnMetricDisplayTexts{} @@ -48,7 +48,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18 } if T == nil { - mlog.Debug("No translation function") + rctx.Logger().Debug("No translation function") return warnMetricStatus, nil } @@ -137,7 +137,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18 warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.notification_body") } default: - mlog.Debug("Invalid metric id", mlog.String("id", warnMetricId)) + rctx.Logger().Debug("Invalid metric id", mlog.String("id", warnMetricId)) return nil, nil } @@ -146,11 +146,11 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18 return nil, nil } -func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError { +func (a *App) NotifyAndSetWarnMetricAck(rctx request.CTX, warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError { if warnMetric, ok := model.WarnMetricsTable[warnMetricId]; ok { data, nErr := a.Srv().Store().System().GetByName(warnMetric.Id) if nErr == nil && data != nil && data.Value == model.WarnMetricStatusAck { - mlog.Debug("This metric warning has already been acknowledged", mlog.String("id", warnMetric.Id)) + rctx.Logger().Debug("This metric warning has already been acknowledged", mlog.String("id", warnMetric.Id)) return nil } @@ -168,7 +168,7 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, //same definition as the active users count metric displayed in the SystemConsole Analytics section registeredUsersCount, cerr := a.Srv().Store().User().Count(model.UserCountOptions{}) if cerr != nil { - mlog.Warn("Error retrieving the number of registered users", mlog.Err(cerr)) + rctx.Logger().Warn("Error retrieving the number of registered users", mlog.Err(cerr)) } else { data.Props["RegisteredUsersHeader"] = T("api.templates.warn_metric_ack.body.registered_users_header") data.Props["RegisteredUsersValue"] = registeredUsersCount @@ -179,7 +179,7 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, data.Props["TelemetryIdValue"] = a.TelemetryId() data.Props["Footer"] = T("api.templates.warn_metric_ack.footer") - warnMetricStatus, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(warnMetricId, T, false) + warnMetricStatus, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(rctx, warnMetricId, T, false) if warnMetricStatus == nil { return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.invalid_warn_metric.app_error", nil, "", http.StatusInternalServerError) } @@ -199,16 +199,16 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, } } - if err := a.setWarnMetricsStatusAndNotify(warnMetric.Id); err != nil { + if err := a.setWarnMetricsStatusAndNotify(rctx, warnMetric.Id); err != nil { return err } } return nil } -func (a *App) setWarnMetricsStatusAndNotify(warnMetricId string) *model.AppError { +func (a *App) setWarnMetricsStatusAndNotify(rctx request.CTX, warnMetricId string) *model.AppError { // Ack all metric warnings on the server - if err := a.setWarnMetricsStatus(model.WarnMetricStatusAck); err != nil { + if err := a.setWarnMetricsStatus(rctx, model.WarnMetricStatusAck); err != nil { return err } @@ -220,18 +220,18 @@ func (a *App) setWarnMetricsStatusAndNotify(warnMetricId string) *model.AppError return nil } -func (a *App) setWarnMetricsStatus(status string) *model.AppError { - mlog.Debug("Set monitoring status for all warn metrics", mlog.String("status", status)) +func (a *App) setWarnMetricsStatus(rctx request.CTX, status string) *model.AppError { + rctx.Logger().Debug("Set monitoring status for all warn metrics", mlog.String("status", status)) for _, warnMetric := range model.WarnMetricsTable { - if err := a.setWarnMetricsStatusForId(warnMetric.Id, status); err != nil { + if err := a.setWarnMetricsStatusForId(rctx, warnMetric.Id, status); err != nil { return err } } return nil } -func (a *App) setWarnMetricsStatusForId(warnMetricId string, status string) *model.AppError { - mlog.Debug("Store status for warn metric", mlog.String("warnMetricId", warnMetricId), mlog.String("status", status)) +func (a *App) setWarnMetricsStatusForId(rctx request.CTX, warnMetricId string, status string) *model.AppError { + rctx.Logger().Debug("Store status for warn metric", mlog.String("warnMetricId", warnMetricId), mlog.String("status", status)) if err := a.Srv().Store().System().SaveOrUpdateWithWarnMetricHandling(&model.System{ Name: warnMetricId, Value: status, @@ -258,14 +258,14 @@ func (a *App) RequestLicenseAndAckWarnMetric(c *request.Context, warnMetricId st if err := a.Channels().RequestTrialLicense(c.Session().UserId, int(registeredUsersCount), true, true); err != nil { // turn off warn metric warning even in case of StartTrial failure - if nerr := a.setWarnMetricsStatusAndNotify(warnMetricId); nerr != nil { + if nerr := a.setWarnMetricsStatusAndNotify(c, warnMetricId); nerr != nil { return nerr } return err } - if appErr = a.NotifyAndSetWarnMetricAck(warnMetricId, currentUser, true, isBot); appErr != nil { + if appErr = a.NotifyAndSetWarnMetricAck(c, warnMetricId, currentUser, true, isBot); appErr != nil { return appErr } diff --git a/server/channels/app/app_iface.go b/server/channels/app/app_iface.go index f23302b946..b6c7dba572 100644 --- a/server/channels/app/app_iface.go +++ b/server/channels/app/app_iface.go @@ -854,7 +854,7 @@ type AppIface interface { GetVerifyEmailToken(token string) (*model.Token, *model.AppError) GetViewUsersRestrictions(c request.CTX, userID string) (*model.ViewUsersRestrictions, *model.AppError) GetWarnMetricsBot() (*model.Bot, *model.AppError) - GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model.AppError) + GetWarnMetricsStatus(rctx request.CTX) (map[string]*model.WarnMetricStatus, *model.AppError) HTTPService() httpservice.HTTPService Handle404(w http.ResponseWriter, r *http.Request) HandleCommandResponse(c request.CTX, command *model.Command, args *model.CommandArgs, response *model.CommandResponse, builtIn bool) (*model.CommandResponse, *model.AppError) @@ -923,7 +923,7 @@ type AppIface interface { NewPluginAPI(c *request.Context, manifest *model.Manifest) plugin.API Notification() einterfaces.NotificationInterface NotificationsLog() *mlog.Logger - NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError + NotifyAndSetWarnMetricAck(rctx request.CTX, warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError NotifySelfHostedSignupProgress(progress string, userId string) NotifySharedChannelUserUpdate(user *model.User) OpenInteractiveDialog(request model.OpenDialogRequest) *model.AppError diff --git a/server/channels/app/integration_action.go b/server/channels/app/integration_action.go index fe4c59a215..2b4710eeac 100644 --- a/server/channels/app/integration_action.go +++ b/server/channels/app/integration_action.go @@ -472,7 +472,7 @@ func (a *App) doLocalWarnMetricsRequest(c *request.Context, rawURL string, upstr } isE0Edition := (model.BuildEnterpriseReady == "true") // license == nil was already validated upstream - _, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(warnMetricId, i18n.T, isE0Edition) + _, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(c, warnMetricId, i18n.T, isE0Edition) botPost.Message = ":white_check_mark: " + warnMetricDisplayTexts.BotSuccessMessage if isE0Edition { @@ -481,11 +481,11 @@ func (a *App) doLocalWarnMetricsRequest(c *request.Context, rawURL string, upstr } } else { forceAck := upstreamRequest.Context["force_ack"].(bool) - if appErr = a.NotifyAndSetWarnMetricAck(warnMetricId, user, forceAck, true); appErr != nil { + if appErr = a.NotifyAndSetWarnMetricAck(c, warnMetricId, user, forceAck, true); appErr != nil { if forceAck { return appErr } - mailtoLinkText := a.buildWarnMetricMailtoLink(warnMetricId, user) + mailtoLinkText := a.buildWarnMetricMailtoLink(c, warnMetricId, user) botPost.Message = ":warning: " + i18n.T("api.server.warn_metric.bot_response.notification_failure.message") actions := []*model.PostAction{} actions = append(actions, @@ -542,9 +542,9 @@ func (mlc *MailToLinkContent) ToJSON() string { return string(b) } -func (a *App) buildWarnMetricMailtoLink(warnMetricId string, user *model.User) string { +func (a *App) buildWarnMetricMailtoLink(rctx request.CTX, warnMetricId string, user *model.User) string { T := i18n.GetUserTranslations(user.Locale) - _, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(warnMetricId, T, false) + _, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(rctx, warnMetricId, T, false) mailBody := warnMetricDisplayTexts.EmailBody mailBody += T("api.server.warn_metric.bot_response.mailto_contact_header", map[string]any{"Contact": user.GetFullName()}) diff --git a/server/channels/app/opentracing/opentracing_layer.go b/server/channels/app/opentracing/opentracing_layer.go index 1cef616724..de06fc384e 100644 --- a/server/channels/app/opentracing/opentracing_layer.go +++ b/server/channels/app/opentracing/opentracing_layer.go @@ -11245,7 +11245,7 @@ func (a *OpenTracingAppLayer) GetWarnMetricsBot() (*model.Bot, *model.AppError) return resultVar0, resultVar1 } -func (a *OpenTracingAppLayer) GetWarnMetricsStatus() (map[string]*model.WarnMetricStatus, *model.AppError) { +func (a *OpenTracingAppLayer) GetWarnMetricsStatus(rctx request.CTX) (map[string]*model.WarnMetricStatus, *model.AppError) { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GetWarnMetricsStatus") @@ -11257,7 +11257,7 @@ func (a *OpenTracingAppLayer) GetWarnMetricsStatus() (map[string]*model.WarnMetr }() defer span.Finish() - resultVar0, resultVar1 := a.app.GetWarnMetricsStatus() + resultVar0, resultVar1 := a.app.GetWarnMetricsStatus(rctx) if resultVar1 != nil { span.LogFields(spanlog.Error(resultVar1)) @@ -12697,7 +12697,7 @@ func (a *OpenTracingAppLayer) NewPluginAPI(c *request.Context, manifest *model.M return resultVar0 } -func (a *OpenTracingAppLayer) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError { +func (a *OpenTracingAppLayer) NotifyAndSetWarnMetricAck(rctx request.CTX, warnMetricId string, sender *model.User, forceAck bool, isBot bool) *model.AppError { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.NotifyAndSetWarnMetricAck") @@ -12709,7 +12709,7 @@ func (a *OpenTracingAppLayer) NotifyAndSetWarnMetricAck(warnMetricId string, sen }() defer span.Finish() - resultVar0 := a.app.NotifyAndSetWarnMetricAck(warnMetricId, sender, forceAck, isBot) + resultVar0 := a.app.NotifyAndSetWarnMetricAck(rctx, warnMetricId, sender, forceAck, isBot) if resultVar0 != nil { span.LogFields(spanlog.Error(resultVar0))