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.