helper/schema: reading a diff with computed should return zero value

This commit is contained in:
Mitchell Hashimoto 2015-01-03 12:02:49 +05:30
parent 73726e83b2
commit 91a57b42e8
2 changed files with 27 additions and 12 deletions

View File

@ -76,17 +76,14 @@ func (r *DiffFieldReader) readPrimitive(
if !ok { if !ok {
return FieldReadResult{}, nil return FieldReadResult{}, nil
} }
if attrD.NewComputed {
return FieldReadResult{
Exists: true,
Computed: true,
}, nil
}
result := attrD.New var result string
if attrD.NewExtra != nil { if !attrD.NewComputed {
if err := mapstructure.WeakDecode(attrD.NewExtra, &result); err != nil { result = attrD.New
return FieldReadResult{}, err if attrD.NewExtra != nil {
if err := mapstructure.WeakDecode(attrD.NewExtra, &result); err != nil {
return FieldReadResult{}, err
}
} }
} }
@ -96,8 +93,9 @@ func (r *DiffFieldReader) readPrimitive(
} }
return FieldReadResult{ return FieldReadResult{
Value: returnVal, Value: returnVal,
Exists: true, Exists: true,
Computed: attrD.NewComputed,
}, nil }, nil
} }

View File

@ -30,6 +30,12 @@ func TestDiffFieldReader(t *testing.T) {
New: "string", New: "string",
}, },
"stringComputed": &terraform.ResourceAttrDiff{
Old: "foo",
New: "bar",
NewComputed: true,
},
"list.#": &terraform.ResourceAttrDiff{ "list.#": &terraform.ResourceAttrDiff{
Old: "0", Old: "0",
New: "2", New: "2",
@ -172,6 +178,17 @@ func TestDiffFieldReader(t *testing.T) {
false, false,
}, },
"stringComputed": {
[]string{"stringComputed"},
&Schema{Type: TypeString},
FieldReadResult{
Value: "",
Exists: true,
Computed: true,
},
false,
},
"list": { "list": {
[]string{"list"}, []string{"list"},
&Schema{ &Schema{