Documentation ¶
Index ¶
- type Issue
- func EnsureAthenaSQLTypeTasksHasDatabaseAndS3FilePath(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureDependencyExists(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureOnlyAcceptedTaskTypesAreThere(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineHasNoCycles(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineNameIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- func EnsurePipelineScheduleIsValidCron(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureSlackFieldInPipelineIsValid(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureStartDateIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- func EnsureTaskNameIsUnique(p *pipeline.Pipeline) ([]*Issue, error)
- func EnsureTaskNameIsValid(pipeline *pipeline.Pipeline) ([]*Issue, error)
- type Linter
- type PipelineAnalysisResult
- type PipelineIssues
- type PipelineValidator
- type Printer
- type QueryValidatorRule
- type Rule
- type SimpleRule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Issue ¶
func EnsurePipelineHasNoCycles ¶
EnsurePipelineHasNoCycles ensures that the pipeline is a DAG, and contains no cycles. Since the pipelines are directed graphs, strongly connected components mean cycles, therefore they would be considered invalid for our pipelines. Strong connectivity wouldn't work for tasks that depend on themselves, therefore there's a specific check for that.
func EnsureStartDateIsValid ¶
type Linter ¶
type Linter struct {
// contains filtered or unexported fields
}
func NewLinter ¶
func NewLinter(findPipelines pipelineFinder, builder pipelineBuilder, rules []Rule, logger *zap.SugaredLogger) *Linter
func (*Linter) Lint ¶
func (l *Linter) Lint(rootPath, pipelineDefinitionFileName string) (*PipelineAnalysisResult, error)
func (*Linter) LintPipelines ¶
func (l *Linter) LintPipelines(pipelines []*pipeline.Pipeline) (*PipelineAnalysisResult, error)
type PipelineAnalysisResult ¶
type PipelineAnalysisResult struct {
Pipelines []*PipelineIssues
}
func (*PipelineAnalysisResult) ErrorCount ¶
func (p *PipelineAnalysisResult) ErrorCount() int
ErrorCount returns the number of errors found in an analysis result.
type PipelineIssues ¶
type PipelineValidator ¶
func EnsureExecutableFileIsValid ¶
func EnsureExecutableFileIsValid(fs afero.Fs) PipelineValidator
type Printer ¶
type Printer struct {
RootCheckPath string
}
func (*Printer) PrintIssues ¶
func (l *Printer) PrintIssues(analysis *PipelineAnalysisResult)
type QueryValidatorRule ¶
type QueryValidatorRule struct { Identifier string TaskType pipeline.AssetType Connections connectionManager Extractor queryExtractor WorkerCount int Logger *zap.SugaredLogger }
func (QueryValidatorRule) Name ¶
func (q QueryValidatorRule) Name() string
type SimpleRule ¶
type SimpleRule struct { Identifier string Validator PipelineValidator }
func (*SimpleRule) Name ¶
func (g *SimpleRule) Name() string
Click to show internal directories.
Click to hide internal directories.