Skip to content

Commit 12bb0f7

Browse files
address review
1 parent 10b8e75 commit 12bb0f7

File tree

2 files changed

+37
-38
lines changed

2 files changed

+37
-38
lines changed

pkg/pf/internal/plugin/provider_server.go

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ import (
2323
pbempty "github.com/golang/protobuf/ptypes/empty"
2424
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
2525
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/config"
26-
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
2726
pl "github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
2827
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
28+
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
2929
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
3030
"google.golang.org/grpc/codes"
3131
"google.golang.org/grpc/status"
@@ -76,7 +76,27 @@ func (p *providerServer) checkNYI(method string, err error) error {
7676
return err
7777
}
7878

79-
func (p *providerServer) marshalDiff(diff plugin.DiffResult) (*pulumirpc.DiffResponse, error) {
79+
func pluginDiffKindToRPC(kind pl.DiffKind) pulumirpc.PropertyDiff_Kind {
80+
switch kind {
81+
case pl.DiffAdd:
82+
return pulumirpc.PropertyDiff_ADD
83+
case pl.DiffAddReplace:
84+
return pulumirpc.PropertyDiff_ADD_REPLACE
85+
case pl.DiffDelete:
86+
return pulumirpc.PropertyDiff_DELETE
87+
case pl.DiffDeleteReplace:
88+
return pulumirpc.PropertyDiff_DELETE_REPLACE
89+
case pl.DiffUpdate:
90+
return pulumirpc.PropertyDiff_UPDATE
91+
case pl.DiffUpdateReplace:
92+
return pulumirpc.PropertyDiff_UPDATE_REPLACE
93+
default:
94+
contract.Assertf(false, "unknown diff kind: %v", kind)
95+
return pulumirpc.PropertyDiff_ADD
96+
}
97+
}
98+
99+
func (p *providerServer) marshalDiff(diff pl.DiffResult) (*pulumirpc.DiffResponse, error) {
80100
var changes pulumirpc.DiffResponse_DiffChanges
81101
switch diff.Changes {
82102
case pl.DiffNone:
@@ -94,7 +114,7 @@ func (p *providerServer) marshalDiff(diff plugin.DiffResult) (*pulumirpc.DiffRes
94114
detailedDiff = make(map[string]*pulumirpc.PropertyDiff)
95115
for path, diff := range diff.DetailedDiff {
96116
detailedDiff[path] = &pulumirpc.PropertyDiff{
97-
Kind: pulumirpc.PropertyDiff_Kind(diff.Kind), //nolint:gosec
117+
Kind: pluginDiffKindToRPC(diff.Kind),
98118
InputDiff: diff.InputDiff,
99119
}
100120
}
@@ -120,21 +140,21 @@ func (p *providerServer) marshalDiff(diff plugin.DiffResult) (*pulumirpc.DiffRes
120140
}
121141

122142
type forwardServer struct {
123-
plugin.UnimplementedProvider
143+
pl.UnimplementedProvider
124144

125-
parameterize func(context.Context, plugin.ParameterizeRequest) (plugin.ParameterizeResponse, error)
145+
parameterize func(context.Context, pl.ParameterizeRequest) (pl.ParameterizeResponse, error)
126146
}
127147

128148
func (p forwardServer) Parameterize(
129-
ctx context.Context, req plugin.ParameterizeRequest,
130-
) (plugin.ParameterizeResponse, error) {
149+
ctx context.Context, req pl.ParameterizeRequest,
150+
) (pl.ParameterizeResponse, error) {
131151
return p.parameterize(ctx, req)
132152
}
133153

134154
func (p *providerServer) Parameterize(
135155
ctx context.Context, req *pulumirpc.ParameterizeRequest,
136156
) (*pulumirpc.ParameterizeResponse, error) {
137-
return plugin.NewProviderServer(&forwardServer{
157+
return pl.NewProviderServer(&forwardServer{
138158
parameterize: p.provider.ParameterizeWithContext,
139159
}).Parameterize(ctx, req)
140160
}
@@ -150,7 +170,7 @@ func (p *providerServer) GetSchema(ctx context.Context,
150170
}
151171
subpackageVersion = &ver
152172
}
153-
schema, err := p.provider.GetSchemaWithContext(ctx, plugin.GetSchemaRequest{
173+
schema, err := p.provider.GetSchemaWithContext(ctx, pl.GetSchemaRequest{
154174
Version: req.GetVersion(),
155175
SubpackageName: req.SubpackageName,
156176
SubpackageVersion: subpackageVersion,

pkg/pf/internal/plugin/provider_server_test.go

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,12 @@ package plugin
33
import (
44
"testing"
55

6-
"github.com/hexops/autogold/v2"
76
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
87
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
98
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
109
"github.com/stretchr/testify/require"
1110
)
1211

13-
// autogold gets confused about the enums, so we just re-define them here.
14-
//
15-
//nolint:revive
16-
const (
17-
ADD pulumirpc.PropertyDiff_Kind = 0
18-
ADD_REPLACE pulumirpc.PropertyDiff_Kind = 1
19-
DELETE pulumirpc.PropertyDiff_Kind = 2
20-
DELETE_REPLACE pulumirpc.PropertyDiff_Kind = 3
21-
UPDATE pulumirpc.PropertyDiff_Kind = 4
22-
UPDATE_REPLACE pulumirpc.PropertyDiff_Kind = 5
23-
)
24-
25-
//nolint:revive
26-
const (
27-
DIFF_UNKNOWN pulumirpc.DiffResponse_DiffChanges = 0
28-
DIFF_NONE pulumirpc.DiffResponse_DiffChanges = 1
29-
DIFF_SOME pulumirpc.DiffResponse_DiffChanges = 2
30-
)
31-
32-
//nolint:unconvert
3312
func TestMarshalDiff(t *testing.T) {
3413
t.Parallel()
3514

@@ -48,11 +27,11 @@ func TestMarshalDiff(t *testing.T) {
4827
DetailedDiff: map[string]plugin.PropertyDiff{},
4928
}
5029

51-
autogold.Expect(&pulumirpc.DiffResponse{
30+
require.Equal(t, &pulumirpc.DiffResponse{
5231
Replaces: []string{},
5332
Changes: pulumirpc.DiffResponse_DIFF_NONE,
5433
Diffs: []string{},
55-
}).Equal(t, runTest(t, diff))
34+
}, runTest(t, diff))
5635
})
5736

5837
t.Run("diff without detailed diff", func(t *testing.T) {
@@ -62,11 +41,11 @@ func TestMarshalDiff(t *testing.T) {
6241
ChangedKeys: []resource.PropertyKey{"change"},
6342
}
6443

65-
autogold.Expect(&pulumirpc.DiffResponse{
44+
require.Equal(t, &pulumirpc.DiffResponse{
6645
Replaces: []string{"replace"},
6746
Changes: pulumirpc.DiffResponse_DIFF_SOME,
6847
Diffs: []string{"change"},
69-
}).Equal(t, runTest(t, diff))
48+
}, runTest(t, diff))
7049
})
7150

7251
t.Run("diff with detailed diff", func(t *testing.T) {
@@ -84,20 +63,20 @@ func TestMarshalDiff(t *testing.T) {
8463
},
8564
}
8665

87-
autogold.Expect(&pulumirpc.DiffResponse{
66+
require.Equal(t, &pulumirpc.DiffResponse{
8867
Replaces: []string{
8968
"replace",
9069
},
91-
Changes: pulumirpc.DiffResponse_DiffChanges(DIFF_SOME),
70+
Changes: pulumirpc.DiffResponse_DIFF_SOME,
9271
Diffs: []string{
9372
"change",
9473
"replace",
9574
},
9675
DetailedDiff: map[string]*pulumirpc.PropertyDiff{
9776
"change": {},
98-
"replace": {Kind: pulumirpc.PropertyDiff_Kind(DELETE_REPLACE)},
77+
"replace": {Kind: pulumirpc.PropertyDiff_DELETE_REPLACE},
9978
},
10079
HasDetailedDiff: true,
101-
}).Equal(t, runTest(t, diff))
80+
}, runTest(t, diff))
10281
})
10382
}

0 commit comments

Comments
 (0)