run

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2024 License: MPL-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyTaskDescription added in v0.4.0

func ApplyTaskDescription(destroy bool) string

func ByStatus

func ByStatus(i, j *Run) int

ByStatus sorts runs according to the following order:

* Planning, Applying (most recent first) * Planned (most recent first) * PlanQueued,ApplyQueued (oldest first) * Scheduled (oldest first) * Pending (oldest first) * Applied,Errored,Canceled,Finished,NoChanges,Discarded (most recent first)

func ByUpdatedDesc

func ByUpdatedDesc(i, j *Run) int

func PlanTaskDescription added in v0.4.0

func PlanTaskDescription(destroy bool) string

Types

type Change

type Change struct {
	Actions []ChangeAction
}

Change represents the type of change being made

type ChangeAction

type ChangeAction string
const (
	CreateAction ChangeAction = "create"
	UpdateAction ChangeAction = "update"
	DeleteAction ChangeAction = "delete"
)

type CreateOptions

type CreateOptions struct {
	// TargetAddrs creates a plan targeting specific resources.
	TargetAddrs []state.ResourceAddress
	// Destroy creates a plan to destroy all resources.
	Destroy bool
	// contains filtered or unexported fields
}

type ListOptions

type ListOptions struct {
	// Filter runs by those that belong to the given ancestor, e.g. a module or workspace
	AncestorID resource.ID
	// Filter runs by status: match run if it has one of these statuses.
	Status []Status
	// Order runs by oldest first (true), or newest first (false)
	Oldest bool
}

type Report

type Report struct {
	Additions    int `json:"additions"`
	Changes      int `json:"changes"`
	Destructions int `json:"destructions"`
}

Report reports a summary of additions, changes, and deletions of resources in a plan or an apply.

func (Report) HasChanges

func (r Report) HasChanges() bool

func (Report) String

func (r Report) String() string

type ResourceChange

type ResourceChange struct {
	Change Change
}

ResourceChange represents a proposed change to a resource in a plan file

type Run

type Run struct {
	resource.Common

	Created time.Time
	Updated time.Time

	Status Status

	PlanReport    *Report
	ApplyReport   *Report
	Changes       bool
	ArtefactsPath string
	Destroy       bool
	// contains filtered or unexported fields
}

func (*Run) IsFinished

func (r *Run) IsFinished() bool

func (*Run) LogValue

func (r *Run) LogValue() slog.Value

func (*Run) ModulePath added in v0.2.0

func (r *Run) ModulePath() string

func (*Run) WorkspaceID

func (r *Run) WorkspaceID() resource.ID

func (*Run) WorkspaceName added in v0.2.0

func (r *Run) WorkspaceName() string

type Service

type Service struct {
	*pubsub.Broker[*Run]
	// contains filtered or unexported fields
}

func NewService

func NewService(opts ServiceOptions) *Service

func (*Service) Apply

func (s *Service) Apply(id resource.ID, opts *CreateOptions) (*task.Task, error)

Apply creates a task for a terraform apply.

If opts is non-nil, then a new run is created and auto-applied without creating a plan file. The ID must be the workspace ID on which to create the run.

If opts is nil, then it will apply an existing plan. The ID must specify an existing run that has successfully created a plan.

func (*Service) Delete

func (s *Service) Delete(id resource.ID) error

func (*Service) Get

func (s *Service) Get(runID resource.ID) (*Run, error)

func (*Service) List

func (s *Service) List(opts ListOptions) []*Run

func (*Service) MultiApply added in v0.3.4

func (s *Service) MultiApply(opts *CreateOptions, ids ...resource.ID) (*task.Group, error)

MultiApply creates a task group of one or more apply tasks. See Apply() for info on parameters.

You cannot apply a combination of destory and non-destroy plans, because that is incompatible with the dependency graph that is created to order the tasks.

func (*Service) Plan added in v0.2.0

func (s *Service) Plan(workspaceID resource.ID, opts CreateOptions) (*task.Task, error)

Plan creates a plan task.

type ServiceOptions

type ServiceOptions struct {
	TaskService             *task.Service
	ModuleService           *module.Service
	WorkspaceService        *workspace.Service
	StateService            *state.Service
	DisableReloadAfterApply bool
	DataDir                 string
	Logger                  logging.Interface
	Terragrunt              bool
}

type Status

type Status string
const (
	Pending     Status = "pending"
	PlanQueued  Status = "plan queued"
	Planning    Status = "planning"
	Planned     Status = "planned"
	NoChanges   Status = "no changes"
	ApplyQueued Status = "apply queued"
	Applying    Status = "applying"
	Applied     Status = "applied"
	Errored     Status = "errored"
	Canceled    Status = "canceled"
	Discarded   Status = "discarded"

	MaxStatusLen = len(ApplyQueued)
)

Jump to

Keyboard shortcuts

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