add old values when computing the new InstanceDiff

This was previously done in the RequiresNew code, which is skipped in
new style provider.
This commit is contained in:
James Bardin 2018-10-18 20:05:33 -04:00
parent 072f73a381
commit ff4e81cc2b
1 changed files with 11 additions and 0 deletions

View File

@ -320,6 +320,17 @@ func (r *Resource) simpleDiff(
return instanceDiff, err return instanceDiff, err
} }
// Make sure the old value is set in each of the instance diffs.
// This was done by the RequiresNew logic in the full legacy Diff.
for k, attr := range instanceDiff.Attributes {
if attr == nil {
continue
}
if s != nil {
attr.Old = s.Attributes[k]
}
}
if instanceDiff != nil { if instanceDiff != nil {
if err := t.DiffEncode(instanceDiff); err != nil { if err := t.DiffEncode(instanceDiff); err != nil {
log.Printf("[ERR] Error encoding timeout to instance diff: %s", err) log.Printf("[ERR] Error encoding timeout to instance diff: %s", err)