diff --git a/pkg/tfbridge/detailed_diff.go b/pkg/tfbridge/detailed_diff.go index 0351add08..ed0d421e8 100644 --- a/pkg/tfbridge/detailed_diff.go +++ b/pkg/tfbridge/detailed_diff.go @@ -393,6 +393,7 @@ func makeDetailedDiffV2( diff shim.InstanceDiff, assets AssetTable, supportsSecrets bool, + oldInputs, newInputs resource.PropertyMap, ) (map[string]*pulumirpc.PropertyDiff, error) { // We need to compare the new and olds after all transformations have been applied. // ex. state upgrades, implementation-specific normalizations etc. diff --git a/pkg/tfbridge/provider.go b/pkg/tfbridge/provider.go index 3f6dd7da4..dbfaec8fd 100644 --- a/pkg/tfbridge/provider.go +++ b/pkg/tfbridge/provider.go @@ -1169,7 +1169,16 @@ func (p *Provider) Diff(ctx context.Context, req *pulumirpc.DiffRequest) (*pulum changes = pulumirpc.DiffResponse_DIFF_SOME } - detailedDiff, err = makeDetailedDiffV2(ctx, schema, fields, res.TF, p.tf, state, diff, assets, p.supportsSecrets) + oldInputs, err := plugin.UnmarshalProperties(req.GetOldInputs(), + plugin.MarshalOptions{Label: fmt.Sprintf("%s.oldInputs", label), SkipNulls: true}) + if err != nil { + return nil, err + } + + detailedDiff, err = makeDetailedDiffV2( + ctx, schema, fields, res.TF, p.tf, state, diff, assets, p.supportsSecrets, oldInputs, news, + ) + if err != nil { return nil, err } diff --git a/pkg/tfbridge/recover_set_order.go b/pkg/tfbridge/recover_set_order.go index 8bd39bb61..8ec8afe55 100644 --- a/pkg/tfbridge/recover_set_order.go +++ b/pkg/tfbridge/recover_set_order.go @@ -101,4 +101,4 @@ func recoverSetOrder( propertyPath := SchemaPathToPropertyPath(setPath, tfs, ps) recoverSetOrderSingle(target, origin, propertyPath) } -} \ No newline at end of file +}