mirror of https://github.com/databricks/cli.git
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package validate
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/databricks/cli/bundle"
|
|
"github.com/databricks/cli/libs/diag"
|
|
)
|
|
|
|
// FastValidate runs a subset of fast validation checks. This is a subset of the full
|
|
// suite of validation mutators that satisfy ANY ONE of the following criteria:
|
|
//
|
|
// 1. No file i/o or network requests are made in the mutator.
|
|
// 2. The validation is blocking for bundle deployments.
|
|
//
|
|
// The full suite of validation mutators is available in the [Validate] mutator.
|
|
type fastValidateReadonly struct{}
|
|
|
|
func FastValidateReadonly() bundle.ReadOnlyMutator {
|
|
return &fastValidateReadonly{}
|
|
}
|
|
|
|
func (f *fastValidateReadonly) Name() string {
|
|
return "fast_validate(readonly)"
|
|
}
|
|
|
|
func (f *fastValidateReadonly) Apply(ctx context.Context, rb bundle.ReadOnlyBundle) diag.Diagnostics {
|
|
return bundle.ApplyReadOnly(ctx, rb, bundle.Parallel(
|
|
// Fast mutators with only in-memory checks
|
|
JobClusterKeyDefined(),
|
|
JobTaskClusterSpec(),
|
|
SingleNodeCluster(),
|
|
|
|
// Blocking mutators. Deployments will fail if these checks fail.
|
|
ValidateArtifactPath(),
|
|
))
|
|
}
|
|
|
|
type fastValidate struct{}
|
|
|
|
func FastValidate() bundle.Mutator {
|
|
return &fastValidate{}
|
|
}
|
|
|
|
func (f *fastValidate) Name() string {
|
|
return "fast_validate"
|
|
}
|
|
|
|
func (f *fastValidate) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics {
|
|
return bundle.ApplyReadOnly(ctx, bundle.ReadOnly(b), FastValidateReadonly())
|
|
}
|