command/plan: show a warning when a plan file is given
This commit is contained in:
parent
7f87a0109b
commit
36ff8b3c02
|
@ -72,11 +72,15 @@ func (c *PlanCommand) Run(args []string) int {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
if planned {
|
if planned {
|
||||||
c.Ui.Error(
|
c.Ui.Output(c.Colorize().Color(
|
||||||
"The plan command cannot be called with a saved plan file.\n\n" +
|
"[reset][bold][yellow]" +
|
||||||
"The plan command expects a configuration directory as an argument.",
|
"The plan command received a saved plan file as input. This command\n" +
|
||||||
)
|
"will output the saved plan. This will not modify the already-existing\n" +
|
||||||
return 1
|
"plan. If you wish to generate a new plan, please pass in a configuration\n" +
|
||||||
|
"directory as an argument.\n\n"))
|
||||||
|
|
||||||
|
// Disable refreshing no matter what since we only want to show the plan
|
||||||
|
refresh = false
|
||||||
}
|
}
|
||||||
|
|
||||||
err = terraform.SetDebugInfo(DefaultDataDir)
|
err = terraform.SetDebugInfo(DefaultDataDir)
|
||||||
|
@ -178,7 +182,7 @@ func (c *PlanCommand) Run(args []string) int {
|
||||||
|
|
||||||
func (c *PlanCommand) Help() string {
|
func (c *PlanCommand) Help() string {
|
||||||
helpText := `
|
helpText := `
|
||||||
Usage: terraform plan [options] [dir]
|
Usage: terraform plan [options] [DIR-OR-PLAN]
|
||||||
|
|
||||||
Generates an execution plan for Terraform.
|
Generates an execution plan for Terraform.
|
||||||
|
|
||||||
|
@ -187,6 +191,9 @@ Usage: terraform plan [options] [dir]
|
||||||
a Terraform plan file, and apply can take this plan file to execute
|
a Terraform plan file, and apply can take this plan file to execute
|
||||||
this plan exactly.
|
this plan exactly.
|
||||||
|
|
||||||
|
If a saved plan is passed as an argument, this command will output
|
||||||
|
the saved plan contents. It will not modify the given plan.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
-destroy If set, a plan will be generated to destroy all resources
|
-destroy If set, a plan will be generated to destroy all resources
|
||||||
|
|
|
@ -55,9 +55,13 @@ func TestPlan_plan(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
args := []string{planPath}
|
args := []string{planPath}
|
||||||
if code := c.Run(args); code != 1 {
|
if code := c.Run(args); code != 0 {
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if p.RefreshCalled {
|
||||||
|
t.Fatal("refresh should not be called")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPlan_destroy(t *testing.T) {
|
func TestPlan_destroy(t *testing.T) {
|
||||||
|
|
|
@ -16,11 +16,16 @@ to `terraform apply` to ensure only the pre-planned actions are executed.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Usage: `terraform plan [options] [dir]`
|
Usage: `terraform plan [options] [dir-or-plan]`
|
||||||
|
|
||||||
By default, `plan` requires no flags and looks in the current directory
|
By default, `plan` requires no flags and looks in the current directory
|
||||||
for the configuration and state file to refresh.
|
for the configuration and state file to refresh.
|
||||||
|
|
||||||
|
If the command is given an existing saved plan as an argument, the
|
||||||
|
command will output the contents of the saved plan. In this scenario,
|
||||||
|
the `plan` command will not modify the given plan. This can be used to
|
||||||
|
inspect a planfile.
|
||||||
|
|
||||||
The command-line flags are all optional. The list of available flags are:
|
The command-line flags are all optional. The list of available flags are:
|
||||||
|
|
||||||
* `-destroy` - If set, generates a plan to destroy all the known resources.
|
* `-destroy` - If set, generates a plan to destroy all the known resources.
|
||||||
|
|
Loading…
Reference in New Issue