From 1ad79a2bb71c94cb4c232a8527ddde1953d41b39 Mon Sep 17 00:00:00 2001 From: Robert Sirchia Date: Thu, 27 Feb 2025 14:21:57 -0500 Subject: [PATCH] converting inline log to slog Signed-off-by: Robert Sirchia --- internal/sympath/walk.go | 4 ++-- pkg/chart/v2/util/dependencies.go | 12 ++++++------ pkg/engine/engine.go | 8 ++++---- pkg/engine/lookup_func.go | 10 +++++----- pkg/ignore/rules.go | 10 +++++----- pkg/plugin/installer/http_installer.go | 3 ++- pkg/plugin/installer/installer.go | 10 ---------- pkg/plugin/installer/local_installer.go | 5 +++-- pkg/plugin/installer/vcs_installer.go | 15 ++++++++------- pkg/release/util/manifest_sorter.go | 4 ++-- pkg/repo/chartrepo.go | 5 +++-- 11 files changed, 40 insertions(+), 46 deletions(-) diff --git a/internal/sympath/walk.go b/internal/sympath/walk.go index 6b221fb6c..938a99bfe 100644 --- a/internal/sympath/walk.go +++ b/internal/sympath/walk.go @@ -21,7 +21,7 @@ limitations under the License. package sympath import ( - "log" + "log/slog" "os" "path/filepath" "sort" @@ -72,7 +72,7 @@ func symwalk(path string, info os.FileInfo, walkFn filepath.WalkFunc) error { return errors.Wrapf(err, "error evaluating symlink %s", path) } //This log message is to highlight a symlink that is being used within a chart, symlinks can be used for nefarious reasons. - log.Printf("found symbolic link in path: %s resolves to %s. Contents of linked file included and used", path, resolved) + slog.Info("found symbolic link in path: %s resolves to %s. Contents of linked file included and used", path, resolved) if info, err = os.Lstat(resolved); err != nil { return err } diff --git a/pkg/chart/v2/util/dependencies.go b/pkg/chart/v2/util/dependencies.go index 78ed46517..2a6912e84 100644 --- a/pkg/chart/v2/util/dependencies.go +++ b/pkg/chart/v2/util/dependencies.go @@ -16,7 +16,7 @@ limitations under the License. package util import ( - "log" + "log/slog" "strings" "github.com/mitchellh/copystructure" @@ -48,10 +48,10 @@ func processDependencyConditions(reqs []*chart.Dependency, cvals Values, cpath s r.Enabled = bv break } - log.Printf("Warning: Condition path '%s' for chart %s returned non-bool value", c, r.Name) + slog.Warn("Warning: Condition path '%s' for chart %s returned non-bool value", c, r.Name) } else if _, ok := err.(ErrNoValue); !ok { // this is a real error - log.Printf("Warning: PathValue returned error %v", err) + slog.Error("Warning: PathValue returned error %v", err) } } } @@ -79,7 +79,7 @@ func processDependencyTags(reqs []*chart.Dependency, cvals Values) { hasFalse = true } } else { - log.Printf("Warning: Tag '%s' for chart %s returned non-bool value", k, r.Name) + slog.Warn("Warning: Tag '%s' for chart %s returned non-bool value", k, r.Name) } } } @@ -254,7 +254,7 @@ func processImportValues(c *chart.Chart, merge bool) error { // get child table vv, err := cvals.Table(r.Name + "." + child) if err != nil { - log.Printf("Warning: ImportValues missing table from chart %s: %v", r.Name, err) + slog.Error("Warning: ImportValues missing table from chart %s: %v", r.Name, err) continue } // create value map from child to be merged into parent @@ -271,7 +271,7 @@ func processImportValues(c *chart.Chart, merge bool) error { }) vm, err := cvals.Table(r.Name + "." + child) if err != nil { - log.Printf("Warning: ImportValues missing table: %v", err) + slog.Error("Warning: ImportValues missing table: %v", err) continue } if merge { diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index 0d0a398be..650b56a3a 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -18,7 +18,7 @@ package engine import ( "fmt" - "log" + "log/slog" "path" "path/filepath" "regexp" @@ -203,7 +203,7 @@ func (e Engine) initFunMap(t *template.Template) { if val == nil { if e.LintMode { // Don't fail on missing required values when linting - log.Printf("[INFO] Missing required value: %s", warn) + slog.Warn("[INFO] Missing required value: %s", warn) return "", nil } return val, errors.New(warnWrap(warn)) @@ -211,7 +211,7 @@ func (e Engine) initFunMap(t *template.Template) { if val == "" { if e.LintMode { // Don't fail on missing required values when linting - log.Printf("[INFO] Missing required value: %s", warn) + slog.Warn("[INFO] Missing required value: %s", warn) return "", nil } return val, errors.New(warnWrap(warn)) @@ -224,7 +224,7 @@ func (e Engine) initFunMap(t *template.Template) { funcMap["fail"] = func(msg string) (string, error) { if e.LintMode { // Don't fail when linting - log.Printf("[INFO] Fail: %s", msg) + slog.Info("[INFO] Fail: %s", msg) return "", nil } return "", errors.New(warnWrap(msg)) diff --git a/pkg/engine/lookup_func.go b/pkg/engine/lookup_func.go index 75e85098d..c7f7226f4 100644 --- a/pkg/engine/lookup_func.go +++ b/pkg/engine/lookup_func.go @@ -18,7 +18,7 @@ package engine import ( "context" - "log" + "log/slog" "strings" "github.com/pkg/errors" @@ -101,7 +101,7 @@ func getDynamicClientOnKind(apiversion string, kind string, config *rest.Config) gvk := schema.FromAPIVersionAndKind(apiversion, kind) apiRes, err := getAPIResourceForGVK(gvk, config) if err != nil { - log.Printf("[ERROR] unable to get apiresource from unstructured: %s , error %s", gvk.String(), err) + slog.Error("[ERROR] unable to get apiresource from unstructured: %s , error %s", gvk.String(), err) return nil, false, errors.Wrapf(err, "unable to get apiresource from unstructured: %s", gvk.String()) } gvr := schema.GroupVersionResource{ @@ -111,7 +111,7 @@ func getDynamicClientOnKind(apiversion string, kind string, config *rest.Config) } intf, err := dynamic.NewForConfig(config) if err != nil { - log.Printf("[ERROR] unable to get dynamic client %s", err) + slog.Error("[ERROR] unable to get dynamic client %s", err) return nil, false, err } res := intf.Resource(gvr) @@ -122,12 +122,12 @@ func getAPIResourceForGVK(gvk schema.GroupVersionKind, config *rest.Config) (met res := metav1.APIResource{} discoveryClient, err := discovery.NewDiscoveryClientForConfig(config) if err != nil { - log.Printf("[ERROR] unable to create discovery client %s", err) + slog.Error("[ERROR] unable to create discovery client %s", err) return res, err } resList, err := discoveryClient.ServerResourcesForGroupVersion(gvk.GroupVersion().String()) if err != nil { - log.Printf("[ERROR] unable to retrieve resource list for: %s , error: %s", gvk.GroupVersion().String(), err) + slog.Error("[ERROR] unable to retrieve resource list for: %s , error: %s", gvk.GroupVersion().String(), err) return res, err } for _, resource := range resList.APIResources { diff --git a/pkg/ignore/rules.go b/pkg/ignore/rules.go index 88de407ad..e59e8dee5 100644 --- a/pkg/ignore/rules.go +++ b/pkg/ignore/rules.go @@ -20,7 +20,7 @@ import ( "bufio" "bytes" "io" - "log" + "log/slog" "os" "path/filepath" "strings" @@ -102,7 +102,7 @@ func (r *Rules) Ignore(path string, fi os.FileInfo) bool { } for _, p := range r.patterns { if p.match == nil { - log.Printf("ignore: no matcher supplied for %q", p.raw) + slog.Info("ignore: no matcher supplied for %q", p.raw) return false } @@ -177,7 +177,7 @@ func (r *Rules) parseRule(rule string) error { rule = strings.TrimPrefix(rule, "/") ok, err := filepath.Match(rule, n) if err != nil { - log.Printf("Failed to compile %q: %s", rule, err) + slog.Error("Failed to compile %q: %s", rule, err) return false } return ok @@ -187,7 +187,7 @@ func (r *Rules) parseRule(rule string) error { p.match = func(n string, _ os.FileInfo) bool { ok, err := filepath.Match(rule, n) if err != nil { - log.Printf("Failed to compile %q: %s", rule, err) + slog.Error("Failed to compile %q: %s", rule, err) return false } return ok @@ -199,7 +199,7 @@ func (r *Rules) parseRule(rule string) error { n = filepath.Base(n) ok, err := filepath.Match(rule, n) if err != nil { - log.Printf("Failed to compile %q: %s", rule, err) + slog.Error("Failed to compile %q: %s", rule, err) return false } return ok diff --git a/pkg/plugin/installer/http_installer.go b/pkg/plugin/installer/http_installer.go index b900fa401..7e457b0d0 100644 --- a/pkg/plugin/installer/http_installer.go +++ b/pkg/plugin/installer/http_installer.go @@ -20,6 +20,7 @@ import ( "bytes" "compress/gzip" "io" + "log/slog" "os" "path" "path/filepath" @@ -144,7 +145,7 @@ func (i *HTTPInstaller) Install() error { return err } - debug("copying %s to %s", src, i.Path()) + slog.Debug("copying %s to %s", src, i.Path()) return fs.CopyDir(src, i.Path()) } diff --git a/pkg/plugin/installer/installer.go b/pkg/plugin/installer/installer.go index 5fad58f99..1e90bcaa0 100644 --- a/pkg/plugin/installer/installer.go +++ b/pkg/plugin/installer/installer.go @@ -16,8 +16,6 @@ limitations under the License. package installer import ( - "fmt" - "log" "net/http" "os" "path/filepath" @@ -125,11 +123,3 @@ func isPlugin(dirname string) bool { _, err := os.Stat(filepath.Join(dirname, plugin.PluginFileName)) return err == nil } - -var logger = log.New(os.Stderr, "[debug] ", log.Lshortfile) - -func debug(format string, args ...interface{}) { - if Debug { - logger.Output(2, fmt.Sprintf(format, args...)) - } -} diff --git a/pkg/plugin/installer/local_installer.go b/pkg/plugin/installer/local_installer.go index a79ca7ec7..4c95134ca 100644 --- a/pkg/plugin/installer/local_installer.go +++ b/pkg/plugin/installer/local_installer.go @@ -16,6 +16,7 @@ limitations under the License. package installer // import "helm.sh/helm/v4/pkg/plugin/installer" import ( + "log/slog" "os" "path/filepath" @@ -57,12 +58,12 @@ func (i *LocalInstaller) Install() error { if !isPlugin(i.Source) { return ErrMissingMetadata } - debug("symlinking %s to %s", i.Source, i.Path()) + slog.Debug("symlinking %s to %s", i.Source, i.Path()) return os.Symlink(i.Source, i.Path()) } // Update updates a local repository func (i *LocalInstaller) Update() error { - debug("local repository is auto-updated") + slog.Debug("local repository is auto-updated") return nil } diff --git a/pkg/plugin/installer/vcs_installer.go b/pkg/plugin/installer/vcs_installer.go index 3967e46cd..41b47ed13 100644 --- a/pkg/plugin/installer/vcs_installer.go +++ b/pkg/plugin/installer/vcs_installer.go @@ -16,6 +16,7 @@ limitations under the License. package installer // import "helm.sh/helm/v4/pkg/plugin/installer" import ( + "log/slog" "os" "sort" @@ -88,13 +89,13 @@ func (i *VCSInstaller) Install() error { return ErrMissingMetadata } - debug("copying %s to %s", i.Repo.LocalPath(), i.Path()) + slog.Debug("copying %s to %s", i.Repo.LocalPath(), i.Path()) return fs.CopyDir(i.Repo.LocalPath(), i.Path()) } // Update updates a remote repository func (i *VCSInstaller) Update() error { - debug("updating %s", i.Repo.Remote()) + slog.Debug("updating %s", i.Repo.Remote()) if i.Repo.IsDirty() { return errors.New("plugin repo was modified") } @@ -128,7 +129,7 @@ func (i *VCSInstaller) solveVersion(repo vcs.Repo) (string, error) { if err != nil { return "", err } - debug("found refs: %s", refs) + slog.Debug("found refs: %s", refs) // Convert and filter the list to semver.Version instances semvers := getSemVers(refs) @@ -139,7 +140,7 @@ func (i *VCSInstaller) solveVersion(repo vcs.Repo) (string, error) { if constraint.Check(v) { // If the constraint passes get the original reference ver := v.Original() - debug("setting to %s", ver) + slog.Debug("setting to %s", ver) return ver, nil } } @@ -149,17 +150,17 @@ func (i *VCSInstaller) solveVersion(repo vcs.Repo) (string, error) { // setVersion attempts to checkout the version func (i *VCSInstaller) setVersion(repo vcs.Repo, ref string) error { - debug("setting version to %q", i.Version) + slog.Debug("setting version to %q", i.Version) return repo.UpdateVersion(ref) } // sync will clone or update a remote repo. func (i *VCSInstaller) sync(repo vcs.Repo) error { if _, err := os.Stat(repo.LocalPath()); os.IsNotExist(err) { - debug("cloning %s to %s", repo.Remote(), repo.LocalPath()) + slog.Debug("cloning %s to %s", repo.Remote(), repo.LocalPath()) return repo.Get() } - debug("updating %s", repo.Remote()) + slog.Debug("updating %s", repo.Remote()) return repo.Update() } diff --git a/pkg/release/util/manifest_sorter.go b/pkg/release/util/manifest_sorter.go index 15eb76174..8b5247cad 100644 --- a/pkg/release/util/manifest_sorter.go +++ b/pkg/release/util/manifest_sorter.go @@ -17,7 +17,7 @@ limitations under the License. package util import ( - "log" + "log/slog" "path" "sort" "strconv" @@ -196,7 +196,7 @@ func (file *manifestFile) sort(result *result) error { } if isUnknownHook { - log.Printf("info: skipping unknown hook: %q", hookTypes) + slog.Info("info: skipping unknown hook: %q", hookTypes) continue } diff --git a/pkg/repo/chartrepo.go b/pkg/repo/chartrepo.go index 52f81be57..070069748 100644 --- a/pkg/repo/chartrepo.go +++ b/pkg/repo/chartrepo.go @@ -22,7 +22,7 @@ import ( "encoding/json" "fmt" "io" - "log" + "log/slog" "net/url" "os" "path/filepath" @@ -343,7 +343,8 @@ func ResolveReferenceURL(baseURL, refURL string) (string, error) { func (e *Entry) String() string { buf, err := json.Marshal(e) if err != nil { - log.Panic(err) + slog.Error("failed to marshal entry: %s", err) + panic(err) } return string(buf) }