Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions modules/terraform/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ func RunTerraformCommandE(t testing.TestingT, additionalOptions *Options, additi
options, args := GetCommonOptions(additionalOptions, additionalArgs...)

cmd := generateCommand(options, args...)
if additionalOptions.WorkspaceDir != "" {
cmd.WorkingDir = additionalOptions.WorkspaceDir
}
description := fmt.Sprintf("%s %v", options.TerraformBinary, args)
return retry.DoWithRetryableErrorsE(t, description, options.RetryableTerraformErrors, options.MaxRetries, options.TimeBetweenRetries, func() (string, error) {
return shell.RunCommandAndGetOutputE(t, cmd)
Expand All @@ -81,6 +84,9 @@ func RunTerraformCommandAndGetStdoutE(t testing.TestingT, additionalOptions *Opt
options, args := GetCommonOptions(additionalOptions, additionalArgs...)

cmd := generateCommand(options, args...)
if additionalOptions.WorkspaceDir != "" {
cmd.WorkingDir = additionalOptions.WorkspaceDir
}
description := fmt.Sprintf("%s %v", options.TerraformBinary, args)
return retry.DoWithRetryableErrorsE(t, description, options.RetryableTerraformErrors, options.MaxRetries, options.TimeBetweenRetries, func() (string, error) {
return shell.RunCommandAndGetStdOutE(t, cmd)
Expand All @@ -102,6 +108,9 @@ func GetExitCodeForTerraformCommandE(t testing.TestingT, additionalOptions *Opti

additionalOptions.Logger.Logf(t, "Running %s with args %v", options.TerraformBinary, args)
cmd := generateCommand(options, args...)
if additionalOptions.WorkspaceDir != "" {
cmd.WorkingDir = additionalOptions.WorkspaceDir
}
_, err := shell.RunCommandAndGetOutputE(t, cmd)
if err == nil {
return DefaultSuccessExitCode, nil
Expand Down
1 change: 1 addition & 0 deletions modules/terraform/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ type Options struct {
OutputMaxLineSize int // The max size of one line in stdout and stderr (in bytes)
Logger *logger.Logger // Set a non-default logger that should be used. See the logger package for more info.
Parallelism int // Set the parallelism setting for Terraform
WorkspaceDir string // Path to Workspace for Terraform commands to run in
PlanFilePath string // The path to output a plan file to (for the plan command) or read one from (for the apply command)
PluginDir string // The path of downloaded plugins to pass to the terraform init command (-plugin-dir)
}
Expand Down