runtime

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: May 23, 2019 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package runtime holds code for actually running commands vs. preparing and constructing.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetPlanFilename added in v0.4.1

func GetPlanFilename(workspace string, projName string) string

GetPlanFilename returns the filename (not the path) of the generated tf plan given a workspace and project name.

func MustConstraint

func MustConstraint(constraint string) version.Constraints

MustConstraint returns a constraint. It panics on error.

func ProjectNameFromPlanfile added in v0.7.0

func ProjectNameFromPlanfile(workspace string, filename string) (string, error)

ProjectNameFromPlanfile returns the project name that a planfile with name filename is for. If filename is for a project without a name then it will return an empty string. workspace is the workspace this project is in.

Types

type ApplyStepRunner

type ApplyStepRunner struct {
	TerraformExecutor   TerraformExec
	CommitStatusUpdater StatusUpdater
	AsyncTFExec         AsyncTFExec
}

ApplyStepRunner runs `terraform apply`.

func (*ApplyStepRunner) Run

func (a *ApplyStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)

type AsyncTFExec added in v0.5.0

type AsyncTFExec interface {
	// RunCommandAsync runs terraform with args. It immediately returns an
	// input and output channel. Callers can use the output channel to
	// get the realtime output from the command.
	// Callers can use the input channel to pass stdin input to the command.
	// If any error is passed on the out channel, there will be no
	// further output (so callers are free to exit).
	RunCommandAsync(log *logging.SimpleLogger, path string, args []string, v *version.Version, workspace string) (chan<- string, <-chan terraform.Line)
}

AsyncTFExec brings the interface from TerraformClient into this package without causing circular imports. It's split from TerraformExec because due to a bug in pegomock with channels, we can't generate a mock for it so we hand-write it for this specific method.

type InitStepRunner

type InitStepRunner struct {
	TerraformExecutor TerraformExec
	DefaultTFVersion  *version.Version
}

InitStep runs `terraform init`.

func (*InitStepRunner) Run

func (i *InitStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)

type PlanStepRunner

type PlanStepRunner struct {
	TerraformExecutor   TerraformExec
	DefaultTFVersion    *version.Version
	CommitStatusUpdater StatusUpdater
	AsyncTFExec         AsyncTFExec
}

func (*PlanStepRunner) Run

func (p *PlanStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []string, path string) (string, error)

type PullApprovedChecker

type PullApprovedChecker interface {
	PullIsApproved(baseRepo models.Repo, pull models.PullRequest) (bool, error)
}

type RunStepRunner

type RunStepRunner struct {
	DefaultTFVersion *version.Version
}

RunStepRunner runs custom commands.

func (*RunStepRunner) Run

func (r *RunStepRunner) Run(ctx models.ProjectCommandContext, command string, path string) (string, error)

type StatusUpdater added in v0.5.0

type StatusUpdater interface {
	UpdateProject(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus, url string) error
}

StatusUpdater brings the interface from CommitStatusUpdater into this package without causing circular imports.

type TerraformExec

type TerraformExec interface {
	RunCommandWithVersion(log *logging.SimpleLogger, path string, args []string, v *version.Version, workspace string) (string, error)
}

TerraformExec brings the interface from TerraformClient into this package without causing circular imports.

Directories

Path Synopsis
matchers
Code generated by pegomock.
Code generated by pegomock.

Jump to

Keyboard shortcuts

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