helper/schema: reading a diff with computed should return zero value
This commit is contained in:
parent
73726e83b2
commit
91a57b42e8
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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{
|
||||||
|
|
Loading…
Reference in New Issue