Update ux for "terraform init [-reconfigure]"

This commit is contained in:
Chris Arcand 2021-10-13 10:22:12 -05:00
parent dc76bbee73
commit f8256f6634
2 changed files with 35 additions and 5 deletions

View File

@ -15,6 +15,7 @@ import (
"github.com/hashicorp/terraform/internal/addrs" "github.com/hashicorp/terraform/internal/addrs"
"github.com/hashicorp/terraform/internal/backend" "github.com/hashicorp/terraform/internal/backend"
backendInit "github.com/hashicorp/terraform/internal/backend/init" backendInit "github.com/hashicorp/terraform/internal/backend/init"
"github.com/hashicorp/terraform/internal/cloud"
"github.com/hashicorp/terraform/internal/configs" "github.com/hashicorp/terraform/internal/configs"
"github.com/hashicorp/terraform/internal/configs/configschema" "github.com/hashicorp/terraform/internal/configs/configschema"
"github.com/hashicorp/terraform/internal/getproviders" "github.com/hashicorp/terraform/internal/getproviders"
@ -304,12 +305,25 @@ func (c *InitCommand) Run(args []string) int {
// by errors then we'll output them here so that the success message is // by errors then we'll output them here so that the success message is
// still the final thing shown. // still the final thing shown.
c.showDiagnostics(diags) c.showDiagnostics(diags)
c.Ui.Output(c.Colorize().Color(strings.TrimSpace(outputInitSuccess))) _, cloud := back.(*cloud.Cloud)
output := ""
if cloud {
output = outputInitSuccessCloud
} else {
output = outputInitSuccess
}
c.Ui.Output(c.Colorize().Color(strings.TrimSpace(output)))
if !c.RunningInAutomation { if !c.RunningInAutomation {
// If we're not running in an automation wrapper, give the user // If we're not running in an automation wrapper, give the user
// some more detailed next steps that are appropriate for interactive // some more detailed next steps that are appropriate for interactive
// shell usage. // shell usage.
c.Ui.Output(c.Colorize().Color(strings.TrimSpace(outputInitSuccessCLI))) output = outputInitSuccessCLI
if cloud {
output = outputInitSuccessCLICloud
}
c.Ui.Output(c.Colorize().Color(strings.TrimSpace(output)))
} }
return 0 return 0
} }
@ -1087,6 +1101,10 @@ const outputInitSuccess = `
[reset][bold][green]Terraform has been successfully initialized![reset][green] [reset][bold][green]Terraform has been successfully initialized![reset][green]
` `
const outputInitSuccessCloud = `
[reset][bold][green]Terraform Cloud has been successfully initialized![reset][green]
`
const outputInitSuccessCLI = `[reset][green] const outputInitSuccessCLI = `[reset][green]
You may now begin working with Terraform. Try running "terraform plan" to see You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands any changes that are required for your infrastructure. All Terraform commands
@ -1097,6 +1115,14 @@ rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary. commands will detect it and remind you to do so if necessary.
` `
const outputInitSuccessCLICloud = `[reset][green]
You may now begin working with Terraform Cloud. Try running "terraform plan" to
see any changes that are required for your infrastructure.
If you ever set or change modules or configuration for Terraform, run
"terraform init" again to reinitialize your working directory.
`
// providerProtocolTooOld is a message sent to the CLI UI if the provider's // providerProtocolTooOld is a message sent to the CLI UI if the provider's
// supported protocol versions are too old for the user's version of terraform, // supported protocol versions are too old for the user's version of terraform,
// but a newer version of the provider is compatible. // but a newer version of the provider is compatible.

View File

@ -17,6 +17,7 @@ import (
"github.com/hashicorp/hcl/v2" "github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/hcldec" "github.com/hashicorp/hcl/v2/hcldec"
"github.com/hashicorp/terraform/internal/backend" "github.com/hashicorp/terraform/internal/backend"
"github.com/hashicorp/terraform/internal/cloud"
"github.com/hashicorp/terraform/internal/command/arguments" "github.com/hashicorp/terraform/internal/command/arguments"
"github.com/hashicorp/terraform/internal/command/clistate" "github.com/hashicorp/terraform/internal/command/clistate"
"github.com/hashicorp/terraform/internal/command/views" "github.com/hashicorp/terraform/internal/command/views"
@ -921,9 +922,12 @@ func (m *Meta) backend_C_r_s(c *configs.Backend, cHash int, sMgr *clistate.Local
return nil, diags return nil, diags
} }
// By now the backend is successfully configured. // By now the backend is successfully configured. If using Terraform Cloud, the success
// message is handled as part of the final init message
if _, ok := b.(*cloud.Cloud); !ok {
m.Ui.Output(m.Colorize().Color(fmt.Sprintf( m.Ui.Output(m.Colorize().Color(fmt.Sprintf(
"[reset][green]\n"+strings.TrimSpace(successBackendSet), s.Backend.Type))) "[reset][green]\n"+strings.TrimSpace(successBackendSet), s.Backend.Type)))
}
return b, diags return b, diags
} }