mirror of https://github.com/databricks/cli.git
Enable 'govet' linter; expand log/diag with non-f functions (#1996)
## Changes Fix all the govet-found issues and enable govet linter. This prompts adding non-formatting variants of logging functions (Errorf -> Error). ## Tests Existing tests.
This commit is contained in:
parent
2ee7d56ae6
commit
592474880d
|
@ -4,12 +4,17 @@ linters:
|
||||||
- bodyclose
|
- bodyclose
|
||||||
- errcheck
|
- errcheck
|
||||||
- gosimple
|
- gosimple
|
||||||
#- govet
|
- govet
|
||||||
- ineffassign
|
- ineffassign
|
||||||
- staticcheck
|
- staticcheck
|
||||||
- unused
|
- unused
|
||||||
- gofmt
|
- gofmt
|
||||||
linters-settings:
|
linters-settings:
|
||||||
|
govet:
|
||||||
|
enable-all: true
|
||||||
|
disable:
|
||||||
|
- fieldalignment
|
||||||
|
- shadow
|
||||||
gofmt:
|
gofmt:
|
||||||
rewrite-rules:
|
rewrite-rules:
|
||||||
- pattern: 'a[b:len(a)]'
|
- pattern: 'a[b:len(a)]'
|
||||||
|
|
|
@ -42,7 +42,7 @@ func (m *detectPkg) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostic
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infof(ctx, fmt.Sprintf("Found Python wheel project at %s", b.BundleRootPath))
|
log.Infof(ctx, "Found Python wheel project at %s", b.BundleRootPath)
|
||||||
module := extractModuleName(setupPy)
|
module := extractModuleName(setupPy)
|
||||||
|
|
||||||
if b.Config.Artifacts == nil {
|
if b.Config.Artifacts == nil {
|
||||||
|
|
|
@ -19,7 +19,7 @@ func (t *mutatorWithError) Name() string {
|
||||||
|
|
||||||
func (t *mutatorWithError) Apply(_ context.Context, b *Bundle) diag.Diagnostics {
|
func (t *mutatorWithError) Apply(_ context.Context, b *Bundle) diag.Diagnostics {
|
||||||
t.applyCalled++
|
t.applyCalled++
|
||||||
return diag.Errorf(t.errorMsg)
|
return diag.Errorf(t.errorMsg) // nolint:govet
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeferredMutatorWhenAllMutatorsSucceed(t *testing.T) {
|
func TestDeferredMutatorWhenAllMutatorsSucceed(t *testing.T) {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package terraform
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/databricks/cli/bundle"
|
"github.com/databricks/cli/bundle"
|
||||||
|
@ -57,7 +56,7 @@ func (p *plan) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics {
|
||||||
IsEmpty: !notEmpty,
|
IsEmpty: !notEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debugf(ctx, fmt.Sprintf("Planning complete and persisted at %s\n", planPath))
|
log.Debugf(ctx, "Planning complete and persisted at %s\n", planPath)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ func TestFilerForVolumeNotFoundAndInBundle(t *testing.T) {
|
||||||
{
|
{
|
||||||
Severity: diag.Error,
|
Severity: diag.Error,
|
||||||
Summary: "volume /Volumes/main/my_schema/my_volume does not exist: error from API",
|
Summary: "volume /Volumes/main/my_schema/my_volume does not exist: error from API",
|
||||||
Locations: []dyn.Location{{"config.yml", 1, 2}, {"volume.yml", 1, 2}},
|
Locations: []dyn.Location{{File: "config.yml", Line: 1, Column: 2}, {File: "volume.yml", Line: 1, Column: 2}},
|
||||||
Paths: []dyn.Path{dyn.MustPathFromString("workspace.artifact_path"), dyn.MustPathFromString("resources.volumes.foo")},
|
Paths: []dyn.Path{dyn.MustPathFromString("workspace.artifact_path"), dyn.MustPathFromString("resources.volumes.foo")},
|
||||||
Detail: `You are using a volume in your artifact_path that is managed by
|
Detail: `You are using a volume in your artifact_path that is managed by
|
||||||
this bundle but which has not been deployed yet. Please first deploy
|
this bundle but which has not been deployed yet. Please first deploy
|
||||||
|
|
|
@ -143,7 +143,7 @@ func logProgressCallback(ctx context.Context, progressLogger *cmdio.Logger) func
|
||||||
progressLogger.Log(event)
|
progressLogger.Log(event)
|
||||||
|
|
||||||
// log progress events in using the default logger
|
// log progress events in using the default logger
|
||||||
log.Infof(ctx, event.String())
|
log.Info(ctx, event.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ func (r *jobRunner) Run(ctx context.Context, opts *Options) (output.RunOutput, e
|
||||||
logDebug(r)
|
logDebug(r)
|
||||||
logProgress(r)
|
logProgress(r)
|
||||||
}).GetWithTimeout(jobRunTimeout)
|
}).GetWithTimeout(jobRunTimeout)
|
||||||
if err != nil && runId != nil {
|
if err != nil {
|
||||||
r.logFailedTasks(ctx, *runId)
|
r.logFailedTasks(ctx, *runId)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -37,7 +37,7 @@ func (r *pipelineRunner) logEvent(ctx context.Context, event pipelines.PipelineE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if logString != "" {
|
if logString != "" {
|
||||||
log.Errorf(ctx, fmt.Sprintf("[%s] %s", event.EventType, logString))
|
log.Errorf(ctx, "[%s] %s", event.EventType, logString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ func (r *pipelineRunner) Run(ctx context.Context, opts *Options) (output.RunOutp
|
||||||
}
|
}
|
||||||
for _, event := range events {
|
for _, event := range events {
|
||||||
progressLogger.Log(&event)
|
progressLogger.Log(&event)
|
||||||
log.Infof(ctx, event.String())
|
log.Info(ctx, event.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
update, err := w.Pipelines.GetUpdateByPipelineIdAndUpdateId(ctx, pipelineID, updateID)
|
update, err := w.Pipelines.GetUpdateByPipelineIdAndUpdateId(ctx, pipelineID, updateID)
|
||||||
|
|
|
@ -190,9 +190,6 @@ func (e *Entrypoint) getLoginConfig(cmd *cobra.Command) (*loginConfig, *config.C
|
||||||
if isNoLoginConfig && !e.IsBundleAware {
|
if isNoLoginConfig && !e.IsBundleAware {
|
||||||
return nil, nil, ErrNoLoginConfig
|
return nil, nil, ErrNoLoginConfig
|
||||||
}
|
}
|
||||||
if !isNoLoginConfig && err != nil {
|
|
||||||
return nil, nil, fmt.Errorf("load: %w", err)
|
|
||||||
}
|
|
||||||
if e.IsAccountLevel {
|
if e.IsAccountLevel {
|
||||||
log.Debugf(ctx, "Using account-level login profile: %s", lc.AccountProfile)
|
log.Debugf(ctx, "Using account-level login profile: %s", lc.AccountProfile)
|
||||||
cfg, err := e.envAwareConfigWithProfile(ctx, lc.AccountProfile)
|
cfg, err := e.envAwareConfigWithProfile(ctx, lc.AccountProfile)
|
||||||
|
|
|
@ -15,7 +15,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEmptyHttpRequest(t *testing.T) {
|
func TestEmptyHttpRequest(t *testing.T) {
|
||||||
ctx, _ := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
req := emptyHttpRequest(ctx)
|
req := emptyHttpRequest(ctx)
|
||||||
assert.Equal(t, req.Context(), ctx)
|
assert.Equal(t, req.Context(), ctx)
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,51 @@ func log(logger *slog.Logger, ctx context.Context, level slog.Level, msg string)
|
||||||
_ = logger.Handler().Handle(ctx, r)
|
_ = logger.Handler().Handle(ctx, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Trace logs a string using the context-local or global logger.
|
||||||
|
func Trace(ctx context.Context, msg string) {
|
||||||
|
logger := GetLogger(ctx)
|
||||||
|
if !logger.Enabled(ctx, LevelTrace) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log(logger, ctx, LevelTrace, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug logs a string using the context-local or global logger.
|
||||||
|
func Debug(ctx context.Context, msg string) {
|
||||||
|
logger := GetLogger(ctx)
|
||||||
|
if !logger.Enabled(ctx, LevelDebug) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log(logger, ctx, LevelDebug, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Info logs a string using the context-local or global logger.
|
||||||
|
func Info(ctx context.Context, msg string) {
|
||||||
|
logger := GetLogger(ctx)
|
||||||
|
if !logger.Enabled(ctx, LevelInfo) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log(logger, ctx, LevelInfo, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Warn logs a string using the context-local or global logger.
|
||||||
|
func Warn(ctx context.Context, msg string) {
|
||||||
|
logger := GetLogger(ctx)
|
||||||
|
if !logger.Enabled(ctx, LevelWarn) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log(logger, ctx, LevelWarn, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error logs a string using the context-local or global logger.
|
||||||
|
func Error(ctx context.Context, msg string) {
|
||||||
|
logger := GetLogger(ctx)
|
||||||
|
if !logger.Enabled(ctx, LevelError) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log(logger, ctx, LevelError, msg)
|
||||||
|
}
|
||||||
|
|
||||||
// Tracef logs a formatted string using the context-local or global logger.
|
// Tracef logs a formatted string using the context-local or global logger.
|
||||||
func Tracef(ctx context.Context, format string, v ...any) {
|
func Tracef(ctx context.Context, format string, v ...any) {
|
||||||
logger := GetLogger(ctx)
|
logger := GetLogger(ctx)
|
||||||
|
|
|
@ -310,7 +310,7 @@ func (r *renderer) persistToDisk(ctx context.Context, out filer.Filer) error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return fmt.Errorf("failed to initialize template, one or more files already exist: %s", path)
|
return fmt.Errorf("failed to initialize template, one or more files already exist: %s", path)
|
||||||
}
|
}
|
||||||
if err != nil && !errors.Is(err, fs.ErrNotExist) {
|
if !errors.Is(err, fs.ErrNotExist) {
|
||||||
return fmt.Errorf("error while verifying file %s does not already exist: %w", path, err)
|
return fmt.Errorf("error while verifying file %s does not already exist: %w", path, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue