Skip to content

Commit 5f5b841

Browse files
authored
Omit partial log entries from the raw gRPC log (#158)
Followup to #157. This omits partial log entries from the raw gRPC log, which some providers inspect as part of tests. A test was made to fail in order to confirm the fix.
1 parent fdc9671 commit 5f5b841

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

grpclog/grpclog.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ type GrpcLogEntry struct {
2323
Method string `json:"method"`
2424
Request json.RawMessage `json:"request,omitempty"`
2525
Response json.RawMessage `json:"response,omitempty"`
26+
Progress string `json:"progress,omitempty"`
2627
}
2728

2829
type Method string
@@ -183,6 +184,10 @@ func ParseLog(log []byte) (*GrpcLog, error) {
183184
if err != nil {
184185
return nil, err
185186
}
187+
// Ignore incomplete entries.
188+
if entry.Progress == "request_started" {
189+
continue
190+
}
186191
parsed.Entries = append(parsed.Entries, entry)
187192
}
188193
return &parsed, nil

grpclog/testdata/aws_bucket_grpc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,4 @@
6969
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"v5.42.0"},"metadata":{"kind":"resource","mode":"client","name":"aws"}}
7070
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"args":{"version":"5.42.0"},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true},"response":{"supportsPreview":true},"metadata":{"kind":"resource","mode":"client","name":"aws"}}
7171
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"testbucket-p-it-antons-mac-bucket-9f59db4a","urn":"urn:pulumi:p-it-antons-mac-bucket-9f59db4a::test::aws:s3/bucket:Bucket::tested-resource","properties":{"accelerationStatus":"","acl":"private","arn":"arn:aws:s3:::testbucket-p-it-antons-mac-bucket-9f59db4a","bucket":"testbucket-p-it-antons-mac-bucket-9f59db4a","bucketDomainName":"testbucket-p-it-antons-mac-bucket-9f59db4a.s3.amazonaws.com","bucketRegionalDomainName":"testbucket-p-it-antons-mac-bucket-9f59db4a.s3.us-west-2.amazonaws.com","corsRules":[],"forceDestroy":false,"grants":[],"hostedZoneId":"Z3BJ6K6RIION7M","id":"testbucket-p-it-antons-mac-bucket-9f59db4a","lifecycleRules":[],"loggings":[],"objectLockConfiguration":null,"region":"us-west-2","replicationConfiguration":null,"requestPayer":"BucketOwner","serverSideEncryptionConfiguration":{"rule":{"applyServerSideEncryptionByDefault":{"kmsMasterKeyId":"","sseAlgorithm":"AES256"},"bucketKeyEnabled":false}},"tags":{},"tagsAll":{},"versioning":{"enabled":false,"mfaDelete":false},"website":null}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"aws"}}
72+
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:test::helm-release-unknowns::random:index/randomPassword:RandomPassword::password","properties":{"length":16,"special":true},"preview":true,"name":"password","type":"random:index/randomPassword:RandomPassword","resourceStatusAddress":"127.0.0.1:57078","resourceStatusToken":"952dc112-efef-40dc-bda6-7037665c5278"},"metadata":{"kind":"resource","mode":"client","name":"random"},"progress":"request_started","timestamp":"2025-11-18T14:48:18.531677-08:00"}

pulumitest/__snapshots__/grpcLog_test.snap

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,28 @@
1111
"Response": {
1212
"id": "<Any value>",
1313
"properties": {
14+
"__pulumi_raw_state_delta": {
15+
"obj": {
16+
"ps": {
17+
"keepers": {
18+
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
19+
"value": {
20+
"replace": {
21+
"raw": null
22+
}
23+
}
24+
},
25+
"prefix": {
26+
"4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270",
27+
"value": {
28+
"replace": {
29+
"raw": null
30+
}
31+
}
32+
}
33+
}
34+
}
35+
},
1436
"id": "<Any value>",
1537
"length": 2,
1638
"separator": "-"

0 commit comments

Comments
 (0)