terraform

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2026 License: MPL-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MockTerraformProvider

type MockTerraformProvider struct {
	FindRelativeProjectPathFunc func(directory ...string) (string, error)
	IsInTerraformProjectFunc    func() bool
	GenerateBackendOverrideFunc func(directory string) error
	GenerateTerraformArgsFunc   func(componentID string, interactive bool) (*TerraformArgs, error)
	GetTerraformComponentFunc   func(componentID string) *blueprintv1alpha1.TerraformComponent
	GetTerraformComponentsFunc  func() []blueprintv1alpha1.TerraformComponent
	SetTerraformComponentsFunc  func(components []blueprintv1alpha1.TerraformComponent)
	SetConfigScopeFunc          func(scope map[string]any)
	GetTerraformOutputsFunc     func(componentID string) (map[string]any, error)
	CacheOutputsFunc            func(componentID string) error
	GetTFDataDirFunc            func(componentID string) (string, error)
	GetStatePathFunc            func(componentID string) (string, error)
	BackendConfigCompleteFunc   func() bool
	GetEnvVarsFunc              func(componentID string, interactive bool) (map[string]string, []string, *TerraformArgs, error)
	FormatArgsForEnvFunc        func(args []string) string
	ClearCacheFunc              func()
	TerraformScopedEnvKeysFunc  func() ([]string, error)
}

MockTerraformProvider is a mock implementation of TerraformProvider for testing.

func (*MockTerraformProvider) BackendConfigComplete

func (m *MockTerraformProvider) BackendConfigComplete() bool

BackendConfigComplete implements TerraformProvider. Default is true so most tests exercise the probe path; tests for the no-config short-circuit set BackendConfigCompleteFunc explicitly to return false.

func (*MockTerraformProvider) CacheOutputs

func (m *MockTerraformProvider) CacheOutputs(componentID string) error

CacheOutputs implements TerraformProvider.

func (*MockTerraformProvider) ClearCache

func (m *MockTerraformProvider) ClearCache()

ClearCache implements TerraformProvider.

func (*MockTerraformProvider) FindRelativeProjectPath

func (m *MockTerraformProvider) FindRelativeProjectPath(directory ...string) (string, error)

FindRelativeProjectPath implements TerraformProvider.

func (*MockTerraformProvider) FormatArgsForEnv

func (m *MockTerraformProvider) FormatArgsForEnv(args []string) string

FormatArgsForEnv implements TerraformProvider.

func (*MockTerraformProvider) GenerateBackendOverride

func (m *MockTerraformProvider) GenerateBackendOverride(directory string) error

GenerateBackendOverride implements TerraformProvider.

func (*MockTerraformProvider) GenerateTerraformArgs

func (m *MockTerraformProvider) GenerateTerraformArgs(componentID string, interactive bool) (*TerraformArgs, error)

GenerateTerraformArgs implements TerraformProvider.

func (*MockTerraformProvider) GetEnvVars

func (m *MockTerraformProvider) GetEnvVars(componentID string, interactive bool) (map[string]string, []string, *TerraformArgs, error)

GetEnvVars implements TerraformProvider.

func (*MockTerraformProvider) GetStatePath

func (m *MockTerraformProvider) GetStatePath(componentID string) (string, error)

GetStatePath implements TerraformProvider.

func (*MockTerraformProvider) GetTFDataDir

func (m *MockTerraformProvider) GetTFDataDir(componentID string) (string, error)

GetTFDataDir implements TerraformProvider.

func (*MockTerraformProvider) GetTerraformComponent

func (m *MockTerraformProvider) GetTerraformComponent(componentID string) *blueprintv1alpha1.TerraformComponent

GetTerraformComponent implements TerraformProvider.

func (*MockTerraformProvider) GetTerraformComponents

func (m *MockTerraformProvider) GetTerraformComponents() []blueprintv1alpha1.TerraformComponent

GetTerraformComponents implements TerraformProvider.

func (*MockTerraformProvider) GetTerraformOutputs

func (m *MockTerraformProvider) GetTerraformOutputs(componentID string) (map[string]any, error)

GetTerraformOutputs implements TerraformProvider.

func (*MockTerraformProvider) IsInTerraformProject

func (m *MockTerraformProvider) IsInTerraformProject() bool

IsInTerraformProject implements TerraformProvider.

func (*MockTerraformProvider) SetConfigScope

func (m *MockTerraformProvider) SetConfigScope(scope map[string]any)

SetConfigScope implements TerraformProvider.

func (*MockTerraformProvider) SetTerraformComponents

func (m *MockTerraformProvider) SetTerraformComponents(components []blueprintv1alpha1.TerraformComponent)

SetTerraformComponents implements TerraformProvider.

func (*MockTerraformProvider) TerraformScopedEnvKeys

func (m *MockTerraformProvider) TerraformScopedEnvKeys() ([]string, error)

TerraformScopedEnvKeys implements TerraformProvider.

type Shims

type Shims struct {
	ReadFile       func(string) ([]byte, error)
	JsonUnmarshal  func([]byte, any) error
	JsonMarshal    func(any) ([]byte, error)
	Getenv         func(string) string
	Setenv         func(string, string) error
	Unsetenv       func(string) error
	Stat           func(string) (os.FileInfo, error)
	Remove         func(string) error
	WriteFile      func(string, []byte, os.FileMode) error
	Getwd          func() (string, error)
	YamlUnmarshal  func([]byte, any) error
	YamlMarshal    func(any) ([]byte, error)
	Glob           func(string) ([]string, error)
	HclParseConfig func([]byte, string, hcl.Pos) (*hclwrite.File, hcl.Diagnostics)
	Goos           func() string
	Sleep          func(time.Duration)
	LookupEnv      func(string) (string, bool)
}

Shims provides mockable wrappers around system and runtime functions

func NewShims

func NewShims() *Shims

NewShims creates a new Shims instance with default implementations

type TerraformArgs

type TerraformArgs struct {
	TFDataDir       string
	InitArgs        []string
	PlanArgs        []string
	ApplyArgs       []string
	RefreshArgs     []string
	ImportArgs      []string
	DestroyArgs     []string
	PlanDestroyArgs []string
	BackendConfig   string
}

TerraformArgs contains all the CLI arguments needed for terraform operations. It does not include environment variable formatting - that is handled by the env printer.

type TerraformProvider

type TerraformProvider interface {
	FindRelativeProjectPath(directory ...string) (string, error)
	IsInTerraformProject() bool
	GenerateBackendOverride(directory string) error
	GenerateTerraformArgs(componentID string, interactive bool) (*TerraformArgs, error)
	GetTerraformComponent(componentID string) *blueprintv1alpha1.TerraformComponent
	GetTerraformComponents() []blueprintv1alpha1.TerraformComponent
	SetTerraformComponents(components []blueprintv1alpha1.TerraformComponent)
	SetConfigScope(scope map[string]any)
	GetTerraformOutputs(componentID string) (map[string]any, error)
	CacheOutputs(componentID string) error
	GetTFDataDir(componentID string) (string, error)
	GetStatePath(componentID string) (string, error)
	BackendConfigComplete() bool
	GetEnvVars(componentID string, interactive bool) (map[string]string, []string, *TerraformArgs, error)
	FormatArgsForEnv(args []string) string
	ClearCache()
	TerraformScopedEnvKeys() ([]string, error)
}

TerraformProvider defines the interface for Terraform operations

func NewTerraformProvider

func NewTerraformProvider(
	configHandler config.ConfigHandler,
	shell shell.Shell,
	toolsManager tools.ToolsManager,
	evaluator evaluator.ExpressionEvaluator,
) TerraformProvider

NewTerraformProvider creates a new TerraformProvider instance and registers its helper functions with the evaluator. Panics if configHandler, shell, toolsManager, or evaluator are nil.

Jump to

Keyboard shortcuts

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