Merge pull request #9794 from hashicorp/b-partial-input
command/meta: always ask for unset variable input
This commit is contained in:
commit
f6dacab0ba
|
@ -407,6 +407,47 @@ func TestApply_input(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// When only a partial set of the variables are set, Terraform
|
||||
// should still ask for the unset ones by default (with -input=true)
|
||||
func TestApply_inputPartial(t *testing.T) {
|
||||
// Disable test mode so input would be asked
|
||||
test = false
|
||||
defer func() { test = true }()
|
||||
|
||||
// Set some default reader/writers for the inputs
|
||||
defaultInputReader = bytes.NewBufferString("one\ntwo\n")
|
||||
defaultInputWriter = new(bytes.Buffer)
|
||||
|
||||
statePath := testTempFile(t)
|
||||
|
||||
p := testProvider()
|
||||
ui := new(cli.MockUi)
|
||||
c := &ApplyCommand{
|
||||
Meta: Meta{
|
||||
ContextOpts: testCtxConfig(p),
|
||||
Ui: ui,
|
||||
},
|
||||
}
|
||||
|
||||
args := []string{
|
||||
"-state", statePath,
|
||||
"-var", "foo=foovalue",
|
||||
testFixturePath("apply-input-partial"),
|
||||
}
|
||||
if code := c.Run(args); code != 0 {
|
||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||
}
|
||||
|
||||
expected := strings.TrimSpace(`
|
||||
<no state>
|
||||
Outputs:
|
||||
|
||||
bar = one
|
||||
foo = foovalue
|
||||
`)
|
||||
testStateOutput(t, statePath, expected)
|
||||
}
|
||||
|
||||
func TestApply_noArgs(t *testing.T) {
|
||||
cwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
|
|
|
@ -221,10 +221,8 @@ func (m *Meta) InputMode() terraform.InputMode {
|
|||
|
||||
var mode terraform.InputMode
|
||||
mode |= terraform.InputModeProvider
|
||||
if len(m.variables) == 0 {
|
||||
mode |= terraform.InputModeVar
|
||||
mode |= terraform.InputModeVarUnset
|
||||
}
|
||||
mode |= terraform.InputModeVar
|
||||
mode |= terraform.InputModeVarUnset
|
||||
|
||||
return mode
|
||||
}
|
||||
|
|
|
@ -175,7 +175,11 @@ func TestMetaInputMode_vars(t *testing.T) {
|
|||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
|
||||
if m.InputMode()&terraform.InputModeVar != 0 {
|
||||
if m.InputMode()&terraform.InputModeVar == 0 {
|
||||
t.Fatalf("bad: %#v", m.InputMode())
|
||||
}
|
||||
|
||||
if m.InputMode()&terraform.InputModeVarUnset == 0 {
|
||||
t.Fatalf("bad: %#v", m.InputMode())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
variable "foo" {}
|
||||
variable "bar" {}
|
||||
|
||||
output "foo" { value = "${var.foo}" }
|
||||
output "bar" { value = "${var.bar}" }
|
|
@ -22,7 +22,8 @@ const (
|
|||
// InputModeVar asks for all variables
|
||||
InputModeVar InputMode = 1 << iota
|
||||
|
||||
// InputModeVarUnset asks for variables which are not set yet
|
||||
// InputModeVarUnset asks for variables which are not set yet.
|
||||
// InputModeVar must be set for this to have an effect.
|
||||
InputModeVarUnset
|
||||
|
||||
// InputModeProvider asks for provider variables
|
||||
|
|
Loading…
Reference in New Issue