rootmodule

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2020 License: MPL-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsRootModuleNotFound

func IsRootModuleNotFound(err error) bool

func NewRootModuleMock

func NewRootModuleMock(rmm *RootModuleMock, dir string) *rootModule

func ParseModuleManifestFromFile

func ParseModuleManifestFromFile(path string) (*moduleManifest, error)

Types

type File

type File interface {
	Path() string
}

type ModuleRecord

type ModuleRecord struct {
	// Key is a unique identifier for this particular module, based on its
	// position within the static module tree.
	Key string `json:"Key"`

	// SourceAddr is the source address given for this module in configuration.
	// This is used only to detect if the source was changed in configuration
	// since the module was last installed, which means that the installer
	// must re-install it.
	SourceAddr string `json:"Source"`

	// Version is the exact version of the module, which results from parsing
	// VersionStr. nil for un-versioned modules.
	Version *version.Version `json:"-"`

	// VersionStr is the version specifier string. This is used only for
	// serialization in snapshots and should not be accessed or updated
	// by any other codepaths; use "Version" instead.
	VersionStr string `json:"Version,omitempty"`

	// Dir is the path to the local directory where the module is installed.
	Dir string `json:"Dir"`
}

ModuleRecord represents some metadata about an installed module, as part of a ModuleManifest.

func (*ModuleRecord) IsExternal

func (r *ModuleRecord) IsExternal() bool

func (*ModuleRecord) IsRoot

func (r *ModuleRecord) IsRoot() bool

func (*ModuleRecord) UnmarshalJSON

func (r *ModuleRecord) UnmarshalJSON(b []byte) error

type ParserFinder

type ParserFinder interface {
	ParserForDir(path string) (lang.Parser, error)
	IsParserLoaded(path string) (bool, error)
	IsSchemaLoaded(path string) (bool, error)
}

type RootModule

type RootModule interface {
	Path() string
	LoadError() error
	StartLoading() error
	IsLoadingDone() bool
	LoadingDone() <-chan struct{}
	IsKnownPluginLockFile(path string) bool
	IsKnownModuleManifestFile(path string) bool
	PathsToWatch() []string
	UpdateSchemaCache(ctx context.Context, lockFile File) error
	ParseProviderReferences() error
	IsSchemaLoaded() bool
	UpdateModuleManifest(manifestFile File) error
	Parser() (lang.Parser, error)
	IsParserLoaded() bool
	TerraformFormatter() (exec.Formatter, error)
	IsTerraformLoaded() bool
	Modules() []ModuleRecord
}

func NewRootModule

func NewRootModule(ctx context.Context, fs tfconfig.FS, dir string) (RootModule, error)

type RootModuleCandidateFinder

type RootModuleCandidateFinder interface {
	RootModuleCandidatesByPath(path string) RootModules
}

type RootModuleFactory

type RootModuleFactory func(context.Context, string) (*rootModule, error)

type RootModuleLoader added in v0.5.0

type RootModuleLoader func(dir string) (RootModule, error)

func NewRootModuleLoader added in v0.5.0

func NewRootModuleLoader(ctx context.Context, rmm RootModuleManager) RootModuleLoader

NewRootModuleLoader allows adding & loading root modules with a given context. This can be passed down to any handler which itself will have short-lived context therefore couldn't finish loading the root module asynchronously after it responds to the client

type RootModuleManager

type RootModuleManager interface {
	ParserFinder
	TerraformFormatterFinder
	RootModuleCandidateFinder

	SetLogger(logger *log.Logger)

	SetTerraformExecPath(path string)
	SetTerraformExecLogPath(logPath string)
	SetTerraformExecTimeout(timeout time.Duration)

	AddAndStartLoadingRootModule(ctx context.Context, dir string) (RootModule, error)
	WorkerPoolSize() int
	WorkerQueueSize() int
	ListRootModules() RootModules
	PathsToWatch() []string
	RootModuleByPath(path string) (RootModule, error)
	CancelLoading()
}

func NewRootModuleManager

func NewRootModuleManager(fs tfconfig.FS) RootModuleManager

type RootModuleManagerFactory

type RootModuleManagerFactory func(tfconfig.FS) RootModuleManager

type RootModuleManagerMockInput added in v0.5.0

type RootModuleManagerMockInput struct {
	RootModules        map[string]*RootModuleMock
	TerraformExecQueue exec.MockItemDispenser
}

type RootModuleMock

type RootModuleMock struct {
	TerraformExecQueue exec.MockItemDispenser
	ProviderSchemas    *tfjson.ProviderSchemas
}

type RootModuleMockFactory

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

func (*RootModuleMockFactory) New

func (rmf *RootModuleMockFactory) New(ctx context.Context, dir string) (*rootModule, error)

type RootModuleNotFoundErr

type RootModuleNotFoundErr struct {
	Dir string
}

func (*RootModuleNotFoundErr) Error

func (e *RootModuleNotFoundErr) Error() string

type RootModules added in v0.5.0

type RootModules []RootModule

func (RootModules) Paths added in v0.5.0

func (rms RootModules) Paths() []string

type TerraformFormatterFinder added in v0.5.0

type TerraformFormatterFinder interface {
	TerraformFormatterForDir(ctx context.Context, path string) (exec.Formatter, error)
	IsTerraformLoaded(path string) (bool, error)
}

type WalkFunc

type WalkFunc func(ctx context.Context, rootModulePath string) error

type Walker

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

func MockWalker added in v0.5.0

func MockWalker() *Walker

func NewWalker

func NewWalker() *Walker

func (*Walker) Done added in v0.6.0

func (w *Walker) Done() <-chan struct{}

func (*Walker) IsWalking added in v0.5.0

func (w *Walker) IsWalking() bool

func (*Walker) SetExcludeModulePaths added in v0.6.0

func (w *Walker) SetExcludeModulePaths(excludeModulePaths []string)

func (*Walker) SetLogger

func (w *Walker) SetLogger(logger *log.Logger)

func (*Walker) StartWalking added in v0.5.0

func (w *Walker) StartWalking(ctx context.Context, path string, wf WalkFunc) error

func (*Walker) Stop added in v0.5.0

func (w *Walker) Stop()

type WalkerFactory added in v0.5.0

type WalkerFactory func() *Walker

Jump to

Keyboard shortcuts

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