@@ -18,8 +18,6 @@ import (
18
18
"context"
19
19
"encoding/json"
20
20
"fmt"
21
- "sort"
22
- "strings"
23
21
24
22
"github.com/blang/semver"
25
23
pbempty "github.com/golang/protobuf/ptypes/empty"
@@ -92,55 +90,23 @@ func (p *providerServer) marshalDiff(diff plugin.DiffResult) (*pulumirpc.DiffRes
92
90
// Infer the result from the detailed diff.
93
91
var diffs , replaces []string
94
92
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 {
108
94
detailedDiff = make (map [string ]* pulumirpc.PropertyDiff )
109
95
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
-
134
96
detailedDiff [path ] = & pulumirpc.PropertyDiff {
135
- Kind : kind ,
97
+ Kind : pulumirpc . PropertyDiff_Kind ( diff . Kind ), //nolint:gosec
136
98
InputDiff : diff .InputDiff ,
137
99
}
138
100
}
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 )
144
110
}
145
111
146
112
return & pulumirpc.DiffResponse {
0 commit comments