From f0bde0e4f902970d447e3aae628f2dcf6f79e539 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 7 Jul 2023 00:52:41 +0800 Subject: [PATCH] Simplify the LFS GC logger usage (#25717) Remove unnecessary `if opts.Logger != nil` checks. * For "CLI doctor" mode, output to the console's "logger.Info". * For "Web Task" mode, output to the default "logger.Debug", to avoid flooding the server's log in a busy production instance. Co-authored-by: Giteabot --- modules/doctor/lfs.go | 4 ++-- services/repository/lfs.go | 38 +++++++++++++++++--------------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/modules/doctor/lfs.go b/modules/doctor/lfs.go index 64ee4c40b..5f110b8f9 100644 --- a/modules/doctor/lfs.go +++ b/modules/doctor/lfs.go @@ -31,8 +31,8 @@ func garbageCollectLFSCheck(ctx context.Context, logger log.Logger, autofix bool } if err := repository.GarbageCollectLFSMetaObjects(ctx, repository.GarbageCollectLFSMetaObjectsOptions{ - Logger: logger, - AutoFix: autofix, + LogDetail: logger.Info, + AutoFix: autofix, // Only attempt to garbage collect lfs meta objects older than a week as the order of git lfs upload // and git object upload is not necessarily guaranteed. It's possible to imagine a situation whereby // an LFS object is uploaded but the git branch is not uploaded immediately, or there are some rapid diff --git a/services/repository/lfs.go b/services/repository/lfs.go index aeb808a72..0bd4d53a5 100644 --- a/services/repository/lfs.go +++ b/services/repository/lfs.go @@ -19,7 +19,7 @@ import ( // GarbageCollectLFSMetaObjectsOptions provides options for GarbageCollectLFSMetaObjects function type GarbageCollectLFSMetaObjectsOptions struct { - Logger log.Logger + LogDetail func(format string, v ...any) AutoFix bool OlderThan time.Time UpdatedLessRecentlyThan time.Time @@ -32,10 +32,12 @@ func GarbageCollectLFSMetaObjects(ctx context.Context, opts GarbageCollectLFSMet log.Trace("Doing: GarbageCollectLFSMetaObjects") defer log.Trace("Finished: GarbageCollectLFSMetaObjects") + if opts.LogDetail == nil { + opts.LogDetail = log.Debug + } + if !setting.LFS.StartServer { - if opts.Logger != nil { - opts.Logger.Info("LFS support is disabled") - } + opts.LogDetail("LFS support is disabled") return nil } @@ -54,21 +56,17 @@ func GarbageCollectLFSMetaObjects(ctx context.Context, opts GarbageCollectLFSMet // GarbageCollectLFSMetaObjectsForRepo garbage collects LFS objects for a specific repository func GarbageCollectLFSMetaObjectsForRepo(ctx context.Context, repo *repo_model.Repository, opts GarbageCollectLFSMetaObjectsOptions) error { - if opts.Logger != nil { - opts.Logger.Info("Checking %-v", repo) - } + opts.LogDetail("Checking %-v", repo) total, orphaned, collected, deleted := int64(0), 0, 0, 0 - if opts.Logger != nil { - defer func() { - if orphaned == 0 { - opts.Logger.Info("Found %d total LFSMetaObjects in %-v", total, repo) - } else if !opts.AutoFix { - opts.Logger.Info("Found %d/%d orphaned LFSMetaObjects in %-v", orphaned, total, repo) - } else { - opts.Logger.Info("Collected %d/%d orphaned/%d total LFSMetaObjects in %-v. %d removed from storage.", collected, orphaned, total, repo, deleted) - } - }() - } + defer func() { + if orphaned == 0 { + opts.LogDetail("Found %d total LFSMetaObjects in %-v", total, repo) + } else if !opts.AutoFix { + opts.LogDetail("Found %d/%d orphaned LFSMetaObjects in %-v", orphaned, total, repo) + } else { + opts.LogDetail("Collected %d/%d orphaned/%d total LFSMetaObjects in %-v. %d removed from storage.", collected, orphaned, total, repo, deleted) + } + }() gitRepo, err := git.OpenRepository(ctx, repo.RepoPath()) if err != nil { @@ -129,9 +127,7 @@ func GarbageCollectLFSMetaObjectsForRepo(ctx context.Context, repo *repo_model.R }) if err == errStop { - if opts.Logger != nil { - opts.Logger.Info("Processing stopped at %d total LFSMetaObjects in %-v", total, repo) - } + opts.LogDetail("Processing stopped at %d total LFSMetaObjects in %-v", total, repo) return nil } else if err != nil { return err