Enable the sloglint linter

Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
pull/31624/head
Mads Jensen 2 weeks ago
parent 5bab984cef
commit a18e59e465

@ -26,6 +26,7 @@ linters:
- misspell
- nakedret
- revive
- sloglint
- staticcheck
- thelper
- unused

@ -280,7 +280,12 @@ func processImportValues(c *chart.Chart, merge bool) error {
// get child table
vv, err := cvals.Table(r.Name + "." + child)
if err != nil {
slog.Warn("ImportValues missing table from chart", "chart", r.Name, slog.Any("error", err))
slog.Warn(
"ImportValues missing table from chart",
slog.String("chart", "chart"),
slog.String("name", r.Name),
slog.Any("error", err),
)
continue
}
// create value map from child to be merged into parent

@ -80,7 +80,7 @@ func InstallWithOptions(i Installer, opts Options) (*VerificationResult, error)
return nil, err
}
if _, pathErr := os.Stat(i.Path()); !os.IsNotExist(pathErr) {
slog.Warn("plugin already exists", "path", i.Path(), slog.Any("error", pathErr))
slog.Warn("plugin already exists", slog.String("path", i.Path()), slog.Any("error", pathErr))
return nil, errors.New("plugin already exists")
}
@ -132,7 +132,7 @@ func InstallWithOptions(i Installer, opts Options) (*VerificationResult, error)
// Update updates a plugin.
func Update(i Installer) error {
if _, pathErr := os.Stat(i.Path()); os.IsNotExist(pathErr) {
slog.Warn("plugin does not exist", "path", i.Path(), slog.Any("error", pathErr))
slog.Warn("plugin does not exist", slog.String("path", i.Path()), slog.Any("error", pathErr))
return errors.New("plugin does not exist")
}
return i.Update()
@ -163,7 +163,11 @@ func NewForSource(source, version string) (installer Installer, err error) {
func FindSource(location string) (Installer, error) {
installer, err := existingVCSRepo(location)
if err != nil && err.Error() == "Cannot detect VCS" {
slog.Warn("cannot get information about plugin source", "location", location, slog.Any("error", err))
slog.Warn(
"cannot get information about plugin source",
slog.String("location", location),
slog.Any("error", err),
)
return installer, errors.New("cannot get information about plugin source")
}
return installer, err

@ -502,7 +502,12 @@ func GetVersionSet(client discovery.ServerResourcesInterface) (common.VersionSet
// recordRelease with an update operation in case reuse has been set.
func (cfg *Configuration) recordRelease(r *release.Release) {
if err := cfg.Releases.Update(r); err != nil {
cfg.Logger().Warn("failed to update release", "name", r.Name, "revision", r.Version, slog.Any("error", err))
cfg.Logger().Warn(
"failed to update release",
slog.String("name", r.Name),
slog.Int("revision", r.Version),
slog.Any("error", err),
)
}
}

@ -515,7 +515,11 @@ func (u *Upgrade) releasingUpgrade(c chan<- resultMessage, upgradedRelease *rele
func (u *Upgrade) failRelease(rel *release.Release, created kube.ResourceList, err error) (*release.Release, error) {
msg := fmt.Sprintf("Upgrade %q failed: %s", rel.Name, err)
u.cfg.Logger().Warn("upgrade failed", "name", rel.Name, slog.Any("error", err))
u.cfg.Logger().Warn(
"upgrade failed",
slog.String("name", rel.Name),
slog.Any("error", err),
)
rel.Info.Status = rcommon.StatusFailed
rel.Info.Description = msg

@ -280,7 +280,11 @@ func processImportValues(c *chart.Chart, merge bool) error {
// get child table
vv, err := cvals.Table(r.Name + "." + child)
if err != nil {
slog.Warn("ImportValues missing table from chart", "chart", r.Name, slog.Any("error", err))
slog.Warn(
"ImportValues missing table from chart",
slog.String("chart", r.Name),
slog.Any("error", err),
)
continue
}
// create value map from child to be merged into parent

@ -190,7 +190,7 @@ func (o *searchRepoOptions) buildIndex() (*search.Index, error) {
f := filepath.Join(o.repoCacheDir, helmpath.CacheIndexFile(n))
ind, err := repo.LoadIndexFile(f)
if err != nil {
slog.Warn("repo is corrupt or missing", "repo", n, slog.Any("error", err))
slog.Warn("repo is corrupt or missing", slog.String("repo", n), slog.Any("error", err))
continue
}

@ -98,7 +98,11 @@ func getDynamicClientOnKind(apiversion string, kind string, config *rest.Config)
gvk := schema.FromAPIVersionAndKind(apiversion, kind)
apiRes, err := getAPIResourceForGVK(gvk, config)
if err != nil {
slog.Error("unable to get apiresource", "groupVersionKind", gvk.String(), slog.Any("error", err))
slog.Error(
"unable to get apiresource",
slog.String("groupVersionKind", gvk.String()),
slog.Any("error", err),
)
return nil, false, fmt.Errorf("unable to get apiresource from unstructured: %s: %w", gvk.String(), err)
}
gvr := schema.GroupVersionResource{
@ -124,7 +128,11 @@ func getAPIResourceForGVK(gvk schema.GroupVersionKind, config *rest.Config) (met
}
resList, err := discoveryClient.ServerResourcesForGroupVersion(gvk.GroupVersion().String())
if err != nil {
slog.Error("unable to retrieve resource list", "GroupVersion", gvk.GroupVersion().String(), slog.Any("error", err))
slog.Error(
"unable to retrieve resource list",
slog.String("GroupVersion", gvk.GroupVersion().String()),
slog.Any("error", err),
)
return res, err
}
for _, resource := range resList.APIResources {

@ -176,7 +176,7 @@ func (r *Rules) parseRule(rule string) error {
rule = after
ok, err := filepath.Match(rule, n)
if err != nil {
slog.Error("failed to compile", "rule", rule, slog.Any("error", err))
slog.Error("failed to compile", slog.String("rule", rule), slog.Any("error", err))
return false
}
return ok
@ -186,7 +186,11 @@ func (r *Rules) parseRule(rule string) error {
p.match = func(n string, _ os.FileInfo) bool {
ok, err := filepath.Match(rule, n)
if err != nil {
slog.Error("failed to compile", "rule", rule, slog.Any("error", err))
slog.Error(
"failed to compile",
slog.String("rule", rule),
slog.Any("error", err),
)
return false
}
return ok
@ -198,7 +202,7 @@ func (r *Rules) parseRule(rule string) error {
n = filepath.Base(n)
ok, err := filepath.Match(rule, n)
if err != nil {
slog.Error("failed to compile", "rule", rule, slog.Any("error", err))
slog.Error("failed to compile", slog.String("rule", rule), slog.Any("error", err))
return false
}
return ok

@ -563,7 +563,12 @@ func (c *Client) update(originals, targets ResourceList, createApplyFunc CreateA
}
kind := target.Mapping.GroupVersionKind.Kind
c.Logger().Debug("created a new resource", "namespace", target.Namespace, "name", target.Name, "kind", kind)
c.Logger().Debug(
"created a new resource",
slog.String("namespace", target.Namespace),
slog.String("name", target.Name),
slog.String("kind", kind),
)
return nil
}
@ -594,19 +599,37 @@ func (c *Client) update(originals, targets ResourceList, createApplyFunc CreateA
c.Logger().Debug("deleting resource", "namespace", info.Namespace, "name", info.Name, "kind", info.Mapping.GroupVersionKind.Kind)
if err := info.Get(); err != nil {
c.Logger().Debug("unable to get object", "namespace", info.Namespace, "name", info.Name, "kind", info.Mapping.GroupVersionKind.Kind, slog.Any("error", err))
c.Logger().Debug(
"unable to get object",
slog.String("namespace", info.Namespace),
slog.String("name", info.Name),
slog.String("kind", info.Mapping.GroupVersionKind.Kind),
slog.Any("error", err),
)
continue
}
annotations, err := metadataAccessor.Annotations(info.Object)
if err != nil {
c.Logger().Debug("unable to get annotations", "namespace", info.Namespace, "name", info.Name, "kind", info.Mapping.GroupVersionKind.Kind, slog.Any("error", err))
c.Logger().Debug(
"unable to get annotations",
slog.String("namespace", info.Namespace),
slog.String("name", info.Name),
slog.String("kind", info.Mapping.GroupVersionKind.Kind),
slog.Any("error", err),
)
}
if annotations != nil && annotations[ResourcePolicyAnno] == KeepPolicy {
c.Logger().Debug("skipping delete due to annotation", "namespace", info.Namespace, "name", info.Name, "kind", info.Mapping.GroupVersionKind.Kind, "annotation", ResourcePolicyAnno, "value", KeepPolicy)
continue
}
if err := deleteResource(info, metav1.DeletePropagationBackground); err != nil {
c.Logger().Debug("failed to delete resource", "namespace", info.Namespace, "name", info.Name, "kind", info.Mapping.GroupVersionKind.Kind, slog.Any("error", err))
c.Logger().Debug(
"failed to delete resource",
slog.String("namespace", info.Namespace),
slog.String("name", info.Name),
slog.String("kind", info.Mapping.GroupVersionKind.Kind),
slog.Any("error", err),
)
if !apierrors.IsNotFound(err) {
updateErrors = append(updateErrors, fmt.Errorf("failed to delete resource %s: %w", info.Name, err))
}
@ -760,7 +783,13 @@ func (c *Client) Update(originals, targets ResourceList, options ...ClientUpdate
slog.String("fieldValidationDirective", string(updateOptions.fieldValidationDirective)))
return func(original, target *resource.Info) error {
if err := replaceResource(target, updateOptions.fieldValidationDirective); err != nil {
c.Logger().Debug("error replacing the resource", "namespace", target.Namespace, "name", target.Name, "kind", target.Mapping.GroupVersionKind.Kind, slog.Any("error", err))
c.Logger().With(
slog.String("namespace", target.Namespace),
slog.String("name", target.Name),
slog.String("gvk", target.Mapping.GroupVersionKind.String()),
).Debug(
"error replacing the resource", slog.Any("error", err),
)
return err
}
@ -829,7 +858,12 @@ func (c *Client) Delete(resources ResourceList, policy metav1.DeletionPropagatio
err := deleteResource(target, policy)
if err == nil || apierrors.IsNotFound(err) {
if err != nil {
c.Logger().Debug("ignoring delete failure", "namespace", target.Namespace, "name", target.Name, "kind", target.Mapping.GroupVersionKind.Kind, slog.Any("error", err))
c.Logger().Debug(
"ignoring delete failure",
slog.String("namespace", target.Namespace),
slog.String("name", target.Name),
slog.String("kind", target.Mapping.GroupVersionKind.Kind),
slog.Any("error", err))
}
mtx.Lock()
defer mtx.Unlock()

@ -102,11 +102,20 @@ func (hw *legacyWaiter) isRetryableError(err error, resource *resource.Info) boo
if err == nil {
return false
}
slog.Debug("error received when checking resource status", "resource", resource.Name, slog.Any("error", err))
slog.Debug(
"error received when checking resource status",
slog.String("resource", resource.Name),
slog.Any("error", err),
)
if ev, ok := err.(*apierrors.StatusError); ok {
statusCode := ev.Status().Code
retryable := hw.isRetryableHTTPStatusCode(statusCode)
slog.Debug("status code received", "resource", resource.Name, "statusCode", statusCode, "retryable", retryable)
slog.Debug(
"status code received",
slog.String("resource", resource.Name),
slog.Int("statusCode", int(statusCode)),
slog.Bool("retryable", retryable),
)
return retryable
}
slog.Debug("retryable error assumed", "resource", resource.Name)
@ -137,9 +146,9 @@ func (hw *legacyWaiter) WaitForDelete(deleted ResourceList, timeout time.Duratio
elapsed := time.Since(startTime).Round(time.Second)
if err != nil {
slog.Debug("wait for resources failed", "elapsed", elapsed, slog.Any("error", err))
slog.Debug("wait for resources failed", slog.Duration("elapsed", elapsed), slog.Any("error", err))
} else {
slog.Debug("wait for resources succeeded", "elapsed", elapsed)
slog.Debug("wait for resources succeeded", slog.Duration("elapsed", elapsed))
}
return err

@ -75,13 +75,13 @@ func (cfgmaps *ConfigMaps) Get(key string) (release.Releaser, error) {
return nil, ErrReleaseNotFound
}
cfgmaps.Logger().Debug("failed to get release", "key", key, slog.Any("error", err))
cfgmaps.Logger().Debug("failed to get release", slog.String("key", key), slog.Any("error", err))
return nil, err
}
// found the configmap, decode the base64 data string
r, err := decodeRelease(obj.Data["release"])
if err != nil {
cfgmaps.Logger().Debug("failed to decode data", "key", key, slog.Any("error", err))
cfgmaps.Logger().Debug("failed to decode data", slog.String("key", key), slog.Any("error", err))
return nil, err
}
r.Labels = filterSystemLabels(obj.Labels)
@ -109,7 +109,7 @@ func (cfgmaps *ConfigMaps) List(filter func(release.Releaser) bool) ([]release.R
for _, item := range list.Items {
rls, err := decodeRelease(item.Data["release"])
if err != nil {
cfgmaps.Logger().Debug("failed to decode release", "item", item, slog.Any("error", err))
cfgmaps.Logger().Debug("failed to decode release", slog.Any("item", item), slog.Any("error", err))
continue
}
@ -181,7 +181,7 @@ func (cfgmaps *ConfigMaps) Create(key string, rls release.Releaser) error {
// create a new configmap to hold the release
obj, err := newConfigMapsObject(key, rel, lbs)
if err != nil {
cfgmaps.Logger().Debug("failed to encode release", "name", rac.Name(), slog.Any("error", err))
cfgmaps.Logger().Debug("failed to encode release", slog.String("name", rac.Name()), slog.Any("error", err))
return err
}
// push the configmap object out into the kubiverse
@ -214,7 +214,11 @@ func (cfgmaps *ConfigMaps) Update(key string, rel release.Releaser) error {
// create a new configmap object to hold the release
obj, err := newConfigMapsObject(key, rls, lbs)
if err != nil {
cfgmaps.Logger().Debug("failed to encode release", "name", rls.Name, slog.Any("error", err))
cfgmaps.Logger().Debug(
"failed to encode release",
slog.String("name", rls.Name),
slog.Any("error", err),
)
return err
}
// push the configmap object out into the kubiverse

@ -103,7 +103,10 @@ func (secrets *Secrets) List(filter func(release.Releaser) bool) ([]release.Rele
for _, item := range list.Items {
rls, err := decodeRelease(string(item.Data["release"]))
if err != nil {
secrets.Logger().Debug("list failed to decode release", "key", item.Name, slog.Any("error", err))
secrets.Logger().Debug(
"list failed to decode release", slog.String("key", item.Name),
slog.Any("error", err),
)
continue
}
@ -142,7 +145,11 @@ func (secrets *Secrets) Query(labels map[string]string) ([]release.Releaser, err
for _, item := range list.Items {
rls, err := decodeRelease(string(item.Data["release"]))
if err != nil {
secrets.Logger().Debug("failed to decode release", "key", item.Name, slog.Any("error", err))
secrets.Logger().Debug(
"failed to decode release",
slog.String("key", item.Name),
slog.Any("error", err),
)
continue
}
rls.Labels = item.Labels

@ -319,18 +319,23 @@ func (s *SQL) Get(key string) (release.Releaser, error) {
// Get will return an error if the result is empty
if err := s.db.Get(&record, query, args...); err != nil {
s.Logger().Debug("got SQL error when getting release", "key", key, slog.Any("error", err))
s.Logger().Debug("got SQL error when getting release", slog.String("key", key), slog.Any("error", err))
return nil, ErrReleaseNotFound
}
release, err := decodeRelease(record.Body)
if err != nil {
s.Logger().Debug("failed to decode data", "key", key, slog.Any("error", err))
s.Logger().Debug("failed to decode data", slog.String("key", key), slog.Any("error", err))
return nil, err
}
if release.Labels, err = s.getReleaseCustomLabels(key, s.namespace); err != nil {
s.Logger().Debug("failed to get release custom labels", "namespace", s.namespace, "key", key, slog.Any("error", err))
s.Logger().Debug(
"failed to get release custom labels",
slog.String("namespace", s.namespace),
slog.String("key", key),
slog.Any("error", err),
)
return nil, err
}
@ -365,12 +370,17 @@ func (s *SQL) List(filter func(release.Releaser) bool) ([]release.Releaser, erro
for _, record := range records {
release, err := decodeRelease(record.Body)
if err != nil {
s.Logger().Debug("failed to decode release", "record", record, slog.Any("error", err))
s.Logger().Debug("failed to decode release", slog.Any("record", record), slog.Any("error", err))
continue
}
if release.Labels, err = s.getReleaseCustomLabels(record.Key, record.Namespace); err != nil {
s.Logger().Debug("failed to get release custom labels", "namespace", record.Namespace, "key", record.Key, slog.Any("error", err))
s.Logger().Debug(
"failed to get release custom labels",
slog.String("namespace", record.Namespace),
slog.String("key", record.Key),
slog.Any("error", err),
)
return nil, err
}
maps.Copy(release.Labels, getReleaseSystemLabels(release))
@ -429,12 +439,17 @@ func (s *SQL) Query(labels map[string]string) ([]release.Releaser, error) {
for _, record := range records {
release, err := decodeRelease(record.Body)
if err != nil {
s.Logger().Debug("failed to decode release", "record", record, slog.Any("error", err))
s.Logger().Debug("failed to decode release", slog.Any("record", record), slog.Any("error", err))
continue
}
if release.Labels, err = s.getReleaseCustomLabels(record.Key, record.Namespace); err != nil {
s.Logger().Debug("failed to get release custom labels", "namespace", record.Namespace, "key", record.Key, slog.Any("error", err))
s.Logger().Debug(
"failed to get release custom labels",
slog.String("namespace", record.Namespace),
slog.String("key", record.Key),
slog.Any("error", err),
)
return nil, err
}
@ -518,11 +533,11 @@ func (s *SQL) Create(key string, rel release.Releaser) error {
var record SQLReleaseWrapper
if err := transaction.Get(&record, selectQuery, args...); err == nil {
s.Logger().Debug("release already exists", "key", key)
s.Logger().Debug("release already exists", slog.String("key", key))
return ErrReleaseExists
}
s.Logger().Debug("failed to store release in SQL database", "key", key, slog.Any("error", err))
s.Logger().Debug("failed to store release in SQL database", slog.String("key", key), slog.Any("error", err))
return err
}
@ -596,7 +611,7 @@ func (s *SQL) Update(key string, rel release.Releaser) error {
}
if _, err := s.db.Exec(query, args...); err != nil {
s.Logger().Debug("failed to update release in SQL database", "key", key, slog.Any("error", err))
s.Logger().Debug("failed to update release in SQL database", slog.String("key", key), slog.Any("error", err))
return err
}
@ -625,13 +640,13 @@ func (s *SQL) Delete(key string) (release.Releaser, error) {
var record SQLReleaseWrapper
err = transaction.Get(&record, selectQuery, args...)
if err != nil {
s.Logger().Debug("release not found", "key", key, slog.Any("error", err))
s.Logger().Debug("release not found", slog.String("key", key), slog.Any("error", err))
return nil, ErrReleaseNotFound
}
release, err := decodeRelease(record.Body)
if err != nil {
s.Logger().Debug("failed to decode release", "key", key, slog.Any("error", err))
s.Logger().Debug("failed to decode release", slog.String("key", key), slog.Any("error", err))
transaction.Rollback()
return nil, err
}
@ -654,7 +669,11 @@ func (s *SQL) Delete(key string) (release.Releaser, error) {
}
if release.Labels, err = s.getReleaseCustomLabels(key, s.namespace); err != nil {
s.Logger().Debug("failed to get release custom labels", "namespace", s.namespace, "key", key, slog.Any("error", err))
s.Logger().Debug(
"failed to get release custom labels",
slog.String("namespace", s.namespace),
slog.String("key", key),
slog.Any("error", err))
return nil, err
}

@ -293,7 +293,7 @@ func (s *Storage) deleteReleaseVersion(name string, version int) error {
key := makeKey(name, version)
_, err := s.Delete(name, version)
if err != nil {
s.Logger().Debug("error pruning release", "key", key, slog.Any("error", err))
s.Logger().Debug("error pruning release", slog.String("key", key), slog.Any("error", err))
return err
}
return nil

Loading…
Cancel
Save