validator

package
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllPassed

func AllPassed(results []*ValidationResult) bool

AllPassed checks if all validation results passed.

func FormatValidationResults

func FormatValidationResults(results []*ValidationResult) string

FormatValidationResults returns human-readable string with all results.

Types

type CompositeValidator

type CompositeValidator struct {
	Validators []Validator
	StopOnFail bool // Stop on first failure if true
}

CompositeValidator runs multiple validators in sequence. Useful for running all prerequisite checks before installation.

func NewCompositeValidator

func NewCompositeValidator(validators []Validator, stopOnFail bool) *CompositeValidator

NewCompositeValidator creates validator that runs multiple checks.

func (*CompositeValidator) Validate

func (cv *CompositeValidator) Validate(ctx context.Context, instance *cloud.Instance, provider cloud.CloudProvider) []*ValidationResult

Validate runs all validators in sequence. Returns aggregated results from all validators.

type ConnectivityValidator

type ConnectivityValidator struct {
	Host    string        // Target hostname or IP
	Port    int           // Target port
	Timeout time.Duration // Connection timeout
	Name    string        // Validation name for reporting
}

ConnectivityValidator validates network connectivity to a specific host:port. This is useful for checking if instance can reach external services (e.g., Puppet Server, Docker Registry, etc).

func NewConnectivityValidator

func NewConnectivityValidator(name, host string, port int, timeout time.Duration) *ConnectivityValidator

NewConnectivityValidator creates a new connectivity validator.

func (*ConnectivityValidator) Validate

func (cv *ConnectivityValidator) Validate(ctx context.Context, instance *cloud.Instance, provider cloud.CloudProvider) *ValidationResult

Validate checks if instance can reach the target host:port.

type SSMValidator

type SSMValidator struct {
	Name    string        // Validation name
	Timeout time.Duration // Validation timeout
}

SSMValidator validates that instance is accessible via Systems Manager (SSM). This is AWS-specific but could be extended for Azure Run Command, etc.

func NewSSMValidator

func NewSSMValidator(timeout time.Duration) *SSMValidator

NewSSMValidator creates a new SSM validator.

func (*SSMValidator) Validate

func (sv *SSMValidator) Validate(ctx context.Context, instance *cloud.Instance, provider cloud.CloudProvider) *ValidationResult

Validate checks if instance is online and accessible via SSM.

type ValidationResult

type ValidationResult struct {
	Name    string // Name of validation (e.g., "ssm_connectivity", "puppet_server_reachable")
	Success bool   // Whether validation passed
	Error   error  // Error if validation failed
	Message string // Human-readable message
}

ValidationResult represents the result of a validation check. Contains success status and any error encountered.

func GetFailedValidations

func GetFailedValidations(results []*ValidationResult) []*ValidationResult

GetFailedValidations returns only the failed validation results.

func ValidatePuppetPrerequisites

func ValidatePuppetPrerequisites(ctx context.Context, instance *cloud.Instance, provider cloud.CloudProvider, puppetServer string, puppetPort int) ([]*ValidationResult, error)

ValidatePuppetPrerequisites is a convenience function for Puppet installation. Validates SSM connectivity and Puppet Server reachability.

type Validator

type Validator interface {
	// Validate runs the validation check
	Validate(ctx context.Context, instance *cloud.Instance, provider cloud.CloudProvider) *ValidationResult
}

Validator interface for reusable validation logic. Different validators can be composed together.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL