[MM-54850] Use request-specific logger in channels/app/admin_advisor.go (#24859)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3dd9e3715c
Коммит
eb35e83152
@@ -857,7 +857,7 @@ func getWarnMetricsStatus(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
status, appErr := c.App.GetWarnMetricsStatus()
|
status, appErr := c.App.GetWarnMetricsStatus(c.AppContext)
|
||||||
if appErr != nil {
|
if appErr != nil {
|
||||||
c.Err = appErr
|
c.Err = appErr
|
||||||
return
|
return
|
||||||
@@ -900,7 +900,7 @@ func sendWarnMetricAckEmail(c *Context, w http.ResponseWriter, r *http.Request)
|
|||||||
return
|
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 {
|
if appErr != nil {
|
||||||
c.Err = appErr
|
c.Err = appErr
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
"github.com/mattermost/mattermost/server/v8/platform/shared/mail"
|
"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()
|
systemDataList, nErr := a.Srv().Store().System().Get()
|
||||||
if nErr != nil {
|
if nErr != nil {
|
||||||
return nil, model.NewAppError("GetWarnMetricsStatus", "app.system.get.app_error", nil, "", http.StatusInternalServerError).Wrap(nErr)
|
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 strings.HasPrefix(key, model.WarnMetricStatusStorePrefix) {
|
||||||
if warnMetric, ok := model.WarnMetricsTable[key]; ok {
|
if warnMetric, ok := model.WarnMetricsTable[key]; ok {
|
||||||
if !warnMetric.IsBotOnly && (value == model.WarnMetricStatusRunonce || value == model.WarnMetricStatusLimitReached) {
|
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
|
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 warnMetricStatus *model.WarnMetricStatus
|
||||||
var warnMetricDisplayTexts = &model.WarnMetricDisplayTexts{}
|
var warnMetricDisplayTexts = &model.WarnMetricDisplayTexts{}
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
|
|||||||
}
|
}
|
||||||
|
|
||||||
if T == nil {
|
if T == nil {
|
||||||
mlog.Debug("No translation function")
|
rctx.Logger().Debug("No translation function")
|
||||||
return warnMetricStatus, nil
|
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")
|
warnMetricDisplayTexts.BotMessageBody = T("api.server.warn_metric.number_of_posts_2M.notification_body")
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
mlog.Debug("Invalid metric id", mlog.String("id", warnMetricId))
|
rctx.Logger().Debug("Invalid metric id", mlog.String("id", warnMetricId))
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,11 +146,11 @@ func (a *App) getWarnMetricStatusAndDisplayTextsForId(warnMetricId string, T i18
|
|||||||
return nil, nil
|
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 {
|
if warnMetric, ok := model.WarnMetricsTable[warnMetricId]; ok {
|
||||||
data, nErr := a.Srv().Store().System().GetByName(warnMetric.Id)
|
data, nErr := a.Srv().Store().System().GetByName(warnMetric.Id)
|
||||||
if nErr == nil && data != nil && data.Value == model.WarnMetricStatusAck {
|
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
|
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
|
//same definition as the active users count metric displayed in the SystemConsole Analytics section
|
||||||
registeredUsersCount, cerr := a.Srv().Store().User().Count(model.UserCountOptions{})
|
registeredUsersCount, cerr := a.Srv().Store().User().Count(model.UserCountOptions{})
|
||||||
if cerr != nil {
|
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 {
|
} else {
|
||||||
data.Props["RegisteredUsersHeader"] = T("api.templates.warn_metric_ack.body.registered_users_header")
|
data.Props["RegisteredUsersHeader"] = T("api.templates.warn_metric_ack.body.registered_users_header")
|
||||||
data.Props["RegisteredUsersValue"] = registeredUsersCount
|
data.Props["RegisteredUsersValue"] = registeredUsersCount
|
||||||
@@ -179,7 +179,7 @@ func (a *App) NotifyAndSetWarnMetricAck(warnMetricId string, sender *model.User,
|
|||||||
data.Props["TelemetryIdValue"] = a.TelemetryId()
|
data.Props["TelemetryIdValue"] = a.TelemetryId()
|
||||||
data.Props["Footer"] = T("api.templates.warn_metric_ack.footer")
|
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 {
|
if warnMetricStatus == nil {
|
||||||
return model.NewAppError("NotifyAndSetWarnMetricAck", "api.email.send_warn_metric_ack.invalid_warn_metric.app_error", nil, "", http.StatusInternalServerError)
|
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 err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
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
|
// 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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,18 +220,18 @@ func (a *App) setWarnMetricsStatusAndNotify(warnMetricId string) *model.AppError
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) setWarnMetricsStatus(status string) *model.AppError {
|
func (a *App) setWarnMetricsStatus(rctx request.CTX, status string) *model.AppError {
|
||||||
mlog.Debug("Set monitoring status for all warn metrics", mlog.String("status", status))
|
rctx.Logger().Debug("Set monitoring status for all warn metrics", mlog.String("status", status))
|
||||||
for _, warnMetric := range model.WarnMetricsTable {
|
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 err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) setWarnMetricsStatusForId(warnMetricId string, status string) *model.AppError {
|
func (a *App) setWarnMetricsStatusForId(rctx request.CTX, warnMetricId string, status string) *model.AppError {
|
||||||
mlog.Debug("Store status for warn metric", mlog.String("warnMetricId", warnMetricId), mlog.String("status", status))
|
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{
|
if err := a.Srv().Store().System().SaveOrUpdateWithWarnMetricHandling(&model.System{
|
||||||
Name: warnMetricId,
|
Name: warnMetricId,
|
||||||
Value: status,
|
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 {
|
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
|
// 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 nerr
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
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
|
return appErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -854,7 +854,7 @@ type AppIface interface {
|
|||||||
GetVerifyEmailToken(token string) (*model.Token, *model.AppError)
|
GetVerifyEmailToken(token string) (*model.Token, *model.AppError)
|
||||||
GetViewUsersRestrictions(c request.CTX, userID string) (*model.ViewUsersRestrictions, *model.AppError)
|
GetViewUsersRestrictions(c request.CTX, userID string) (*model.ViewUsersRestrictions, *model.AppError)
|
||||||
GetWarnMetricsBot() (*model.Bot, *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
|
HTTPService() httpservice.HTTPService
|
||||||
Handle404(w http.ResponseWriter, r *http.Request)
|
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)
|
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
|
NewPluginAPI(c *request.Context, manifest *model.Manifest) plugin.API
|
||||||
Notification() einterfaces.NotificationInterface
|
Notification() einterfaces.NotificationInterface
|
||||||
NotificationsLog() *mlog.Logger
|
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)
|
NotifySelfHostedSignupProgress(progress string, userId string)
|
||||||
NotifySharedChannelUserUpdate(user *model.User)
|
NotifySharedChannelUserUpdate(user *model.User)
|
||||||
OpenInteractiveDialog(request model.OpenDialogRequest) *model.AppError
|
OpenInteractiveDialog(request model.OpenDialogRequest) *model.AppError
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ func (a *App) doLocalWarnMetricsRequest(c *request.Context, rawURL string, upstr
|
|||||||
}
|
}
|
||||||
|
|
||||||
isE0Edition := (model.BuildEnterpriseReady == "true") // license == nil was already validated upstream
|
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
|
botPost.Message = ":white_check_mark: " + warnMetricDisplayTexts.BotSuccessMessage
|
||||||
|
|
||||||
if isE0Edition {
|
if isE0Edition {
|
||||||
@@ -481,11 +481,11 @@ func (a *App) doLocalWarnMetricsRequest(c *request.Context, rawURL string, upstr
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
forceAck := upstreamRequest.Context["force_ack"].(bool)
|
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 {
|
if forceAck {
|
||||||
return appErr
|
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")
|
botPost.Message = ":warning: " + i18n.T("api.server.warn_metric.bot_response.notification_failure.message")
|
||||||
actions := []*model.PostAction{}
|
actions := []*model.PostAction{}
|
||||||
actions = append(actions,
|
actions = append(actions,
|
||||||
@@ -542,9 +542,9 @@ func (mlc *MailToLinkContent) ToJSON() string {
|
|||||||
return string(b)
|
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)
|
T := i18n.GetUserTranslations(user.Locale)
|
||||||
_, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(warnMetricId, T, false)
|
_, warnMetricDisplayTexts := a.getWarnMetricStatusAndDisplayTextsForId(rctx, warnMetricId, T, false)
|
||||||
|
|
||||||
mailBody := warnMetricDisplayTexts.EmailBody
|
mailBody := warnMetricDisplayTexts.EmailBody
|
||||||
mailBody += T("api.server.warn_metric.bot_response.mailto_contact_header", map[string]any{"Contact": user.GetFullName()})
|
mailBody += T("api.server.warn_metric.bot_response.mailto_contact_header", map[string]any{"Contact": user.GetFullName()})
|
||||||
|
|||||||
@@ -11245,7 +11245,7 @@ func (a *OpenTracingAppLayer) GetWarnMetricsBot() (*model.Bot, *model.AppError)
|
|||||||
return resultVar0, resultVar1
|
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
|
origCtx := a.ctx
|
||||||
span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GetWarnMetricsStatus")
|
span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GetWarnMetricsStatus")
|
||||||
|
|
||||||
@@ -11257,7 +11257,7 @@ func (a *OpenTracingAppLayer) GetWarnMetricsStatus() (map[string]*model.WarnMetr
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
defer span.Finish()
|
defer span.Finish()
|
||||||
resultVar0, resultVar1 := a.app.GetWarnMetricsStatus()
|
resultVar0, resultVar1 := a.app.GetWarnMetricsStatus(rctx)
|
||||||
|
|
||||||
if resultVar1 != nil {
|
if resultVar1 != nil {
|
||||||
span.LogFields(spanlog.Error(resultVar1))
|
span.LogFields(spanlog.Error(resultVar1))
|
||||||
@@ -12697,7 +12697,7 @@ func (a *OpenTracingAppLayer) NewPluginAPI(c *request.Context, manifest *model.M
|
|||||||
return resultVar0
|
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
|
origCtx := a.ctx
|
||||||
span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.NotifyAndSetWarnMetricAck")
|
span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.NotifyAndSetWarnMetricAck")
|
||||||
|
|
||||||
@@ -12709,7 +12709,7 @@ func (a *OpenTracingAppLayer) NotifyAndSetWarnMetricAck(warnMetricId string, sen
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
defer span.Finish()
|
defer span.Finish()
|
||||||
resultVar0 := a.app.NotifyAndSetWarnMetricAck(warnMetricId, sender, forceAck, isBot)
|
resultVar0 := a.app.NotifyAndSetWarnMetricAck(rctx, warnMetricId, sender, forceAck, isBot)
|
||||||
|
|
||||||
if resultVar0 != nil {
|
if resultVar0 != nil {
|
||||||
span.LogFields(spanlog.Error(resultVar0))
|
span.LogFields(spanlog.Error(resultVar0))
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user