Skip to content

Commit b677d0f

Browse files
pass through diffs and replaces
1 parent fbd47b6 commit b677d0f

File tree

1 file changed

+11
-45
lines changed

1 file changed

+11
-45
lines changed

pkg/pf/internal/plugin/provider_server.go

Lines changed: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ import (
1818
"context"
1919
"encoding/json"
2020
"fmt"
21-
"sort"
22-
"strings"
2321

2422
"github.com/blang/semver"
2523
pbempty "github.com/golang/protobuf/ptypes/empty"
@@ -92,55 +90,23 @@ func (p *providerServer) marshalDiff(diff plugin.DiffResult) (*pulumirpc.DiffRes
9290
// Infer the result from the detailed diff.
9391
var diffs, replaces []string
9492
var detailedDiff map[string]*pulumirpc.PropertyDiff
95-
if len(diff.DetailedDiff) == 0 {
96-
diffs = make([]string, len(diff.ChangedKeys))
97-
for i, k := range diff.ChangedKeys {
98-
diffs[i] = string(k)
99-
}
100-
replaces = make([]string, len(diff.ReplaceKeys))
101-
for i, k := range diff.ReplaceKeys {
102-
replaces[i] = string(k)
103-
}
104-
} else {
105-
changes = pulumirpc.DiffResponse_DIFF_SOME
106-
107-
properties := map[string]struct{}{}
93+
if len(diff.DetailedDiff) != 0 {
10894
detailedDiff = make(map[string]*pulumirpc.PropertyDiff)
10995
for path, diff := range diff.DetailedDiff {
110-
for k := range detailedDiff {
111-
// Turn the attribute name into a top-level property name by trimming everything after the first dot.
112-
if firstSep := strings.IndexAny(k, ".["); firstSep != -1 {
113-
k = k[:firstSep]
114-
}
115-
properties[k] = struct{}{}
116-
}
117-
118-
var kind pulumirpc.PropertyDiff_Kind
119-
switch diff.Kind {
120-
case pl.DiffAdd:
121-
kind = pulumirpc.PropertyDiff_ADD
122-
case pl.DiffAddReplace:
123-
kind, replaces = pulumirpc.PropertyDiff_ADD_REPLACE, append(replaces, path)
124-
case pl.DiffDelete:
125-
kind = pulumirpc.PropertyDiff_DELETE
126-
case pl.DiffDeleteReplace:
127-
kind, replaces = pulumirpc.PropertyDiff_DELETE, append(replaces, path)
128-
case pl.DiffUpdate:
129-
kind = pulumirpc.PropertyDiff_UPDATE
130-
case pl.DiffUpdateReplace:
131-
kind, replaces = pulumirpc.PropertyDiff_UPDATE_REPLACE, append(replaces, path)
132-
}
133-
13496
detailedDiff[path] = &pulumirpc.PropertyDiff{
135-
Kind: kind,
97+
Kind: pulumirpc.PropertyDiff_Kind(diff.Kind), //nolint:gosec
13698
InputDiff: diff.InputDiff,
13799
}
138100
}
139-
diffs = make([]string, 0, len(properties))
140-
for k := range properties {
141-
diffs = append(diffs, k)
142-
}
143-
sort.Strings(diffs)
101+
}
102+
103+
diffs = make([]string, len(diff.ChangedKeys))
104+
for i, k := range diff.ChangedKeys {
105+
diffs[i] = string(k)
106+
}
107+
replaces = make([]string, len(diff.ReplaceKeys))
108+
for i, k := range diff.ReplaceKeys {
109+
replaces[i] = string(k)
144110
}
145111

146112
return &pulumirpc.DiffResponse{

0 commit comments

Comments
 (0)