simulation

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSSimulator

type AWSSimulator struct {
	// contains filtered or unexported fields
}

AWSSimulator simulates drift in AWS resources

func NewAWSSimulator

func NewAWSSimulator() *AWSSimulator

NewAWSSimulator creates a new AWS drift simulator

func (*AWSSimulator) DetectDrift

func (s *AWSSimulator) DetectDrift(ctx context.Context, state *state.TerraformState) ([]DriftItem, error)

DetectDrift detects drift in AWS resources

func (*AWSSimulator) Initialize

func (s *AWSSimulator) Initialize(ctx context.Context) error

Initialize sets up AWS clients

func (*AWSSimulator) Rollback

func (s *AWSSimulator) Rollback(ctx context.Context, data *RollbackData) error

Rollback undoes the simulated drift

func (*AWSSimulator) SimulateDrift

func (s *AWSSimulator) SimulateDrift(ctx context.Context, driftType DriftType, resourceID string, state *state.TerraformState) (*SimulationResult, error)

SimulateDrift creates drift in AWS resources

type AzureSimulator

type AzureSimulator struct {
	// contains filtered or unexported fields
}

AzureSimulator simulates drift in Azure resources

func NewAzureSimulator

func NewAzureSimulator() *AzureSimulator

NewAzureSimulator creates a new Azure drift simulator

func (*AzureSimulator) DetectDrift

func (s *AzureSimulator) DetectDrift(ctx context.Context, state *state.TerraformState) ([]DriftItem, error)

DetectDrift detects drift in Azure resources

func (*AzureSimulator) Initialize

func (s *AzureSimulator) Initialize(ctx context.Context) error

Initialize sets up Azure authentication

func (*AzureSimulator) Rollback

func (s *AzureSimulator) Rollback(ctx context.Context, data *RollbackData) error

Rollback undoes the simulated drift

func (*AzureSimulator) SimulateDrift

func (s *AzureSimulator) SimulateDrift(ctx context.Context, driftType DriftType, resourceID string, state *state.TerraformState) (*SimulationResult, error)

SimulateDrift creates drift in Azure resources

type DriftItem

type DriftItem struct {
	ResourceID   string                 `json:"resource_id"`
	ResourceType string                 `json:"resource_type"`
	DriftType    string                 `json:"drift_type"`
	Before       map[string]interface{} `json:"before"`
	After        map[string]interface{} `json:"after"`
	Impact       string                 `json:"impact"`
}

DriftItem represents a detected drift

type DriftSimulator

type DriftSimulator struct {
	// contains filtered or unexported fields
}

DriftSimulator creates controlled drift for testing

func NewDriftSimulator

func NewDriftSimulator(config SimulatorConfig) (*DriftSimulator, error)

NewDriftSimulator creates a new drift simulator

func (*DriftSimulator) DetectDrift

func (s *DriftSimulator) DetectDrift(ctx context.Context) ([]DriftItem, error)

DetectDrift runs drift detection after simulation

func (*DriftSimulator) GenerateReport

func (s *DriftSimulator) GenerateReport(result *SimulationResult, drifts []DriftItem) string

GenerateReport generates a detailed drift simulation report

func (*DriftSimulator) Rollback

func (s *DriftSimulator) Rollback(ctx context.Context) error

Rollback undoes the simulated drift

func (*DriftSimulator) SimulateDrift

func (s *DriftSimulator) SimulateDrift(ctx context.Context) (*SimulationResult, error)

SimulateDrift creates drift in the cloud provider

type DriftType

type DriftType string

DriftType represents the type of drift to simulate

const (
	DriftTypeTagChange        DriftType = "tag-change"
	DriftTypeRuleAddition     DriftType = "rule-addition"
	DriftTypeResourceCreation DriftType = "resource-creation"
	DriftTypeAttributeChange  DriftType = "attribute-change"
	DriftTypeResourceDeletion DriftType = "resource-deletion"
	DriftTypeRandom           DriftType = "random"
)

type GCPSimulator

type GCPSimulator struct {
	// contains filtered or unexported fields
}

GCPSimulator simulates drift in GCP resources

func NewGCPSimulator

func NewGCPSimulator() *GCPSimulator

NewGCPSimulator creates a new GCP drift simulator

func (*GCPSimulator) DetectDrift

func (s *GCPSimulator) DetectDrift(ctx context.Context, state *state.TerraformState) ([]DriftItem, error)

DetectDrift detects drift in GCP resources

func (*GCPSimulator) Initialize

func (s *GCPSimulator) Initialize(ctx context.Context) error

Initialize sets up GCP authentication

func (*GCPSimulator) Rollback

func (s *GCPSimulator) Rollback(ctx context.Context, data *RollbackData) error

Rollback undoes the simulated drift

func (*GCPSimulator) SimulateDrift

func (s *GCPSimulator) SimulateDrift(ctx context.Context, driftType DriftType, resourceID string, state *state.TerraformState) (*SimulationResult, error)

SimulateDrift creates drift in GCP resources

type RollbackData

type RollbackData struct {
	Provider     string                 `json:"provider"`
	ResourceType string                 `json:"resource_type"`
	ResourceID   string                 `json:"resource_id"`
	Action       string                 `json:"action"`
	OriginalData map[string]interface{} `json:"original_data"`
	Timestamp    time.Time              `json:"timestamp"`
}

RollbackData stores information needed to undo the drift

type SimulationResult

type SimulationResult struct {
	Success       bool                   `json:"success"`
	DriftType     DriftType              `json:"drift_type"`
	Provider      string                 `json:"provider"`
	ResourceType  string                 `json:"resource_type"`
	ResourceID    string                 `json:"resource_id"`
	Changes       map[string]interface{} `json:"changes"`
	RollbackData  *RollbackData          `json:"rollback_data,omitempty"`
	ErrorMessage  string                 `json:"error,omitempty"`
	CostEstimate  string                 `json:"cost_estimate"`
	DetectedDrift []DriftItem            `json:"detected_drift,omitempty"`
}

SimulationResult contains the result of a drift simulation

type SimulatorConfig

type SimulatorConfig struct {
	StateFile      string
	Provider       string
	DriftType      DriftType
	TargetResource string // Optional: specific resource to target
	AutoRollback   bool
	DryRun         bool
}

SimulatorConfig configures the drift simulator

Jump to

Keyboard shortcuts

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