From 35d3e3e91e8f0b5df5a53ddd815e9407fbdf2687 Mon Sep 17 00:00:00 2001 From: "Sinan Sonmez (Chaush)" <37421564+sinansonmez@users.noreply.github.com> Date: Thu, 13 Apr 2023 10:51:11 +0200 Subject: [PATCH] GH21563: Add the request context and logger to all public methods in app/admin.go (#22898) * migrate mlog * fix linter issue --- server/channels/api4/system.go | 6 ++--- server/channels/app/admin.go | 24 +++++++++---------- server/channels/app/app_iface.go | 6 ++--- .../app/opentracing/opentracing_layer.go | 12 +++++----- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/server/channels/api4/system.go b/server/channels/api4/system.go index 705f2680d3..216533b67f 100644 --- a/server/channels/api4/system.go +++ b/server/channels/api4/system.go @@ -295,7 +295,7 @@ func databaseRecycle(c *Context, w http.ResponseWriter, r *http.Request) { return } - c.App.RecycleDatabaseConnection() + c.App.RecycleDatabaseConnection(c.AppContext) auditRec.Success() ReturnStatusOK(w) @@ -348,7 +348,7 @@ func queryLogs(c *Context, w http.ResponseWriter, r *http.Request) { return } - logs, logerr := c.App.QueryLogs(c.Params.Page, c.Params.LogsPerPage, logFilter) + logs, logerr := c.App.QueryLogs(c.AppContext, c.Params.Page, c.Params.LogsPerPage, logFilter) if logerr != nil { c.Err = logerr return @@ -387,7 +387,7 @@ func getLogs(c *Context, w http.ResponseWriter, r *http.Request) { return } - lines, appErr := c.App.GetLogs(c.Params.Page, c.Params.LogsPerPage) + lines, appErr := c.App.GetLogs(c.AppContext, c.Params.Page, c.Params.LogsPerPage) if appErr != nil { c.Err = appErr return diff --git a/server/channels/app/admin.go b/server/channels/app/admin.go index 697e825812..fb3ab53000 100644 --- a/server/channels/app/admin.go +++ b/server/channels/app/admin.go @@ -11,17 +11,17 @@ import ( "time" "github.com/mattermost/mattermost-server/v6/model" + "github.com/mattermost/mattermost-server/v6/server/channels/app/request" "github.com/mattermost/mattermost-server/v6/server/platform/services/cache" "github.com/mattermost/mattermost-server/v6/server/platform/shared/i18n" "github.com/mattermost/mattermost-server/v6/server/platform/shared/mail" - "github.com/mattermost/mattermost-server/v6/server/platform/shared/mlog" ) var latestVersionCache = cache.NewLRU(cache.LRUOptions{ Size: 1, }) -func (s *Server) GetLogs(page, perPage int) ([]string, *model.AppError) { +func (s *Server) GetLogs(c request.CTX, page, perPage int) ([]string, *model.AppError) { var lines []string license := s.License() @@ -33,7 +33,7 @@ func (s *Server) GetLogs(page, perPage int) ([]string, *model.AppError) { lines = append(lines, "-----------------------------------------------------------------------------------------------------------") lines = append(lines, "-----------------------------------------------------------------------------------------------------------") } else { - mlog.Error("Could not get cluster info") + c.Logger().Error("Could not get cluster info") } } @@ -56,7 +56,7 @@ func (s *Server) GetLogs(page, perPage int) ([]string, *model.AppError) { return lines, nil } -func (s *Server) QueryLogs(page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { +func (s *Server) QueryLogs(c request.CTX, page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { logData := make(map[string][]string) serverName := "default" @@ -66,7 +66,7 @@ func (s *Server) QueryLogs(page, perPage int, logFilter *model.LogFilter) (map[s if info := s.platform.Cluster().GetMyClusterInfo(); info != nil { serverName = info.Hostname } else { - mlog.Error("Could not get cluster info") + c.Logger().Error("Could not get cluster info") } } @@ -111,12 +111,12 @@ func AddLocalLogs(logData map[string][]string, s *Server, page, perPage int, ser return nil } -func (a *App) QueryLogs(page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { - return a.Srv().QueryLogs(page, perPage, logFilter) +func (a *App) QueryLogs(c request.CTX, page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { + return a.Srv().QueryLogs(c, page, perPage, logFilter) } -func (a *App) GetLogs(page, perPage int) ([]string, *model.AppError) { - return a.Srv().GetLogs(page, perPage) +func (a *App) GetLogs(c request.CTX, page, perPage int) ([]string, *model.AppError) { + return a.Srv().GetLogs(c, page, perPage) } func (s *Server) GetLogsSkipSend(page, perPage int, logFilter *model.LogFilter) ([]string, *model.AppError) { @@ -146,15 +146,15 @@ func (s *Server) InvalidateAllCachesSkipSend() { } -func (a *App) RecycleDatabaseConnection() { - mlog.Info("Attempting to recycle database connections.") +func (a *App) RecycleDatabaseConnection(c request.CTX) { + c.Logger().Info("Attempting to recycle database connections.") // This works by setting 10 seconds as the max conn lifetime for all DB connections. // This allows in gradually closing connections as they expire. In future, we can think // of exposing this as a param from the REST api. a.Srv().Store().RecycleDBConnections(10 * time.Second) - mlog.Info("Finished recycling database connections.") + c.Logger().Info("Finished recycling database connections.") } func (a *App) TestSiteURL(siteURL string) *model.AppError { diff --git a/server/channels/app/app_iface.go b/server/channels/app/app_iface.go index eb30bc0779..b7355144ea 100644 --- a/server/channels/app/app_iface.go +++ b/server/channels/app/app_iface.go @@ -682,7 +682,7 @@ type AppIface interface { GetJobsPage(page int, perPage int) ([]*model.Job, *model.AppError) GetLatestTermsOfService() (*model.TermsOfService, *model.AppError) GetLatestVersion(latestVersionUrl string) (*model.GithubReleaseInfo, *model.AppError) - GetLogs(page, perPage int) ([]string, *model.AppError) + GetLogs(c request.CTX, page, perPage int) ([]string, *model.AppError) GetLogsSkipSend(page, perPage int, logFilter *model.LogFilter) ([]string, *model.AppError) GetMemberCountsByGroup(ctx context.Context, channelID string, includeTimezones bool) ([]*model.ChannelMemberCountByGroup, *model.AppError) GetMessageForNotification(post *model.Post, translateFunc i18n.TranslateFunc) string @@ -961,9 +961,9 @@ type AppIface interface { PublishUserTyping(userID, channelID, parentId string) *model.AppError PurgeBleveIndexes() *model.AppError PurgeElasticsearchIndexes() *model.AppError - QueryLogs(page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) + QueryLogs(c request.CTX, page, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) ReadFile(path string) ([]byte, *model.AppError) - RecycleDatabaseConnection() + RecycleDatabaseConnection(c request.CTX) RegenCommandToken(cmd *model.Command) (*model.Command, *model.AppError) RegenOutgoingWebhookToken(hook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError) RegenerateOAuthAppSecret(app *model.OAuthApp) (*model.OAuthApp, *model.AppError) diff --git a/server/channels/app/opentracing/opentracing_layer.go b/server/channels/app/opentracing/opentracing_layer.go index 6e522bb971..452ab79fa8 100644 --- a/server/channels/app/opentracing/opentracing_layer.go +++ b/server/channels/app/opentracing/opentracing_layer.go @@ -7111,7 +7111,7 @@ func (a *OpenTracingAppLayer) GetLdapGroup(ldapGroupID string) (*model.Group, *m return resultVar0, resultVar1 } -func (a *OpenTracingAppLayer) GetLogs(page int, perPage int) ([]string, *model.AppError) { +func (a *OpenTracingAppLayer) GetLogs(c request.CTX, page int, perPage int) ([]string, *model.AppError) { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GetLogs") @@ -7123,7 +7123,7 @@ func (a *OpenTracingAppLayer) GetLogs(page int, perPage int) ([]string, *model.A }() defer span.Finish() - resultVar0, resultVar1 := a.app.GetLogs(page, perPage) + resultVar0, resultVar1 := a.app.GetLogs(c, page, perPage) if resultVar1 != nil { span.LogFields(spanlog.Error(resultVar1)) @@ -13624,7 +13624,7 @@ func (a *OpenTracingAppLayer) PurgeElasticsearchIndexes() *model.AppError { return resultVar0 } -func (a *OpenTracingAppLayer) QueryLogs(page int, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { +func (a *OpenTracingAppLayer) QueryLogs(c request.CTX, page int, perPage int, logFilter *model.LogFilter) (map[string][]string, *model.AppError) { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.QueryLogs") @@ -13636,7 +13636,7 @@ func (a *OpenTracingAppLayer) QueryLogs(page int, perPage int, logFilter *model. }() defer span.Finish() - resultVar0, resultVar1 := a.app.QueryLogs(page, perPage, logFilter) + resultVar0, resultVar1 := a.app.QueryLogs(c, page, perPage, logFilter) if resultVar1 != nil { span.LogFields(spanlog.Error(resultVar1)) @@ -13668,7 +13668,7 @@ func (a *OpenTracingAppLayer) ReadFile(path string) ([]byte, *model.AppError) { return resultVar0, resultVar1 } -func (a *OpenTracingAppLayer) RecycleDatabaseConnection() { +func (a *OpenTracingAppLayer) RecycleDatabaseConnection(c request.CTX) { origCtx := a.ctx span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.RecycleDatabaseConnection") @@ -13680,7 +13680,7 @@ func (a *OpenTracingAppLayer) RecycleDatabaseConnection() { }() defer span.Finish() - a.app.RecycleDatabaseConnection() + a.app.RecycleDatabaseConnection(c) } func (a *OpenTracingAppLayer) RegenCommandToken(cmd *model.Command) (*model.Command, *model.AppError) {