Skip to content

Commit 235928b

Browse files
Obviate TODO(#8410)
1 parent 15358cf commit 235928b

16 files changed

Lines changed: 35 additions & 373 deletions

File tree

cmd/boulder-wfe2/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"github.com/letsencrypt/boulder/ratelimits"
2727
bredis "github.com/letsencrypt/boulder/redis"
2828
sapb "github.com/letsencrypt/boulder/sa/proto"
29-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
29+
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
3030
"github.com/letsencrypt/boulder/unpause"
3131
"github.com/letsencrypt/boulder/web"
3232
"github.com/letsencrypt/boulder/wfe2"
@@ -310,11 +310,11 @@ func main() {
310310
cmd.FailOnError(err, "Failed to load credentials and create gRPC connection to SA")
311311
sac := sapb.NewStorageAuthorityReadOnlyClient(saConn)
312312

313-
var eec salesforcepb.ExporterClient
313+
var eec emailpb.ExporterClient
314314
if c.WFE.EmailExporter != nil {
315315
emailExporterConn, err := bgrpc.ClientSetup(c.WFE.EmailExporter, tlsConfig, stats, clk)
316316
cmd.FailOnError(err, "Failed to load credentials and create gRPC connection to email-exporter")
317-
eec = salesforcepb.NewExporterClient(emailExporterConn)
317+
eec = emailpb.NewExporterClient(emailExporterConn)
318318
}
319319

320320
if c.WFE.RedeemNonceService == nil {

cmd/email-exporter/main.go

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ import (
66
"os"
77

88
"github.com/jmhodges/clock"
9-
"google.golang.org/protobuf/types/known/emptypb"
109

1110
"github.com/letsencrypt/boulder/cmd"
1211
bgrpc "github.com/letsencrypt/boulder/grpc"
1312
"github.com/letsencrypt/boulder/salesforce"
1413
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
15-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
1614
)
1715

1816
// Config holds the configuration for the email-exporter service.
@@ -64,22 +62,6 @@ type Config struct {
6462
OpenTelemetry cmd.OpenTelemetryConfig
6563
}
6664

67-
// legacyEmailExporterServer is an adapter that implements the email.Exporter
68-
// gRPC interface by delegating to an inner salesforce.Exporter server.
69-
//
70-
// TODO(#8410): Remove legacyEmailExporterServer once fully migrated to
71-
// salesforcepb.Exporter.
72-
type legacyEmailExporterServer struct {
73-
emailpb.UnimplementedExporterServer
74-
inner salesforcepb.ExporterServer
75-
}
76-
77-
// SendContacts is an interface adapter that forwards the request to the same
78-
// method on the inner salesforce.Exporter server.
79-
func (s legacyEmailExporterServer) SendContacts(ctx context.Context, req *emailpb.SendContactsRequest) (*emptypb.Empty, error) {
80-
return s.inner.SendContacts(ctx, &salesforcepb.SendContactsRequest{Emails: req.GetEmails()})
81-
}
82-
8365
func main() {
8466
configFile := flag.String("config", "", "Path to configuration file")
8567
grpcAddr := flag.String("addr", "", "gRPC listen address override")
@@ -136,10 +118,7 @@ func main() {
136118
go server.Start(daemonCtx)
137119

138120
start, err := bgrpc.NewServer(c.EmailExporter.GRPC, logger).Add(
139-
&salesforcepb.Exporter_ServiceDesc, server).Add(
140-
// TODO(#8410): Remove emailpb.Exporter once fully migrated to
141-
// salesforcepb.Exporter.
142-
&emailpb.Exporter_ServiceDesc, legacyEmailExporterServer{inner: server}).Build(
121+
&emailpb.Exporter_ServiceDesc, server).Build(
143122
tlsConfig, scope, clk)
144123
cmd.FailOnError(err, "Configuring email-exporter gRPC server")
145124

cmd/sfe/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
"github.com/letsencrypt/boulder/ratelimits"
1818
bredis "github.com/letsencrypt/boulder/redis"
1919
sapb "github.com/letsencrypt/boulder/sa/proto"
20-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
20+
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
2121
"github.com/letsencrypt/boulder/sfe"
2222
"github.com/letsencrypt/boulder/sfe/zendesk"
2323
"github.com/letsencrypt/boulder/web"
@@ -156,11 +156,11 @@ func main() {
156156
cmd.FailOnError(err, "Failed to load credentials and create gRPC connection to SA")
157157
sac := sapb.NewStorageAuthorityReadOnlyClient(saConn)
158158

159-
var eec salesforcepb.ExporterClient
159+
var eec emailpb.ExporterClient
160160
if c.SFE.EmailExporter != nil {
161161
emailExporterConn, err := bgrpc.ClientSetup(c.SFE.EmailExporter, tlsConfig, stats, clk)
162162
cmd.FailOnError(err, "Failed to load credentials and create gRPC connection to email-exporter")
163-
eec = salesforcepb.NewExporterClient(emailExporterConn)
163+
eec = emailpb.NewExporterClient(emailExporterConn)
164164
}
165165

166166
var zendeskClient *zendesk.Client

mocks/emailexporter.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"google.golang.org/protobuf/types/known/emptypb"
1010

1111
"github.com/letsencrypt/boulder/salesforce"
12-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
12+
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
1313
)
1414

1515
var _ salesforce.SalesforceClient = (*MockSalesforceClientImpl)(nil)
@@ -46,23 +46,23 @@ func (m *MockSalesforceClientImpl) GetCreatedContacts() []string {
4646
return slices.Clone(m.CreatedContacts)
4747
}
4848

49-
var _ salesforcepb.ExporterClient = (*MockExporterClientImpl)(nil)
49+
var _ emailpb.ExporterClient = (*MockExporterClientImpl)(nil)
5050

5151
// MockExporterClientImpl is a mock implementation of ExporterClient.
5252
type MockExporterClientImpl struct {
5353
SalesforceClient salesforce.SalesforceClient
5454
}
5555

5656
// NewMockExporterImpl returns a MockExporterClientImpl as an ExporterClient.
57-
func NewMockExporterImpl(salesforceClient salesforce.SalesforceClient) salesforcepb.ExporterClient {
57+
func NewMockExporterImpl(salesforceClient salesforce.SalesforceClient) emailpb.ExporterClient {
5858
return &MockExporterClientImpl{
5959
SalesforceClient: salesforceClient,
6060
}
6161
}
6262

6363
// SendContacts submits emails to the inner salesforce.SalesforceClient, returning an
6464
// error if any fail.
65-
func (m *MockExporterClientImpl) SendContacts(ctx context.Context, req *salesforcepb.SendContactsRequest, _ ...grpc.CallOption) (*emptypb.Empty, error) {
65+
func (m *MockExporterClientImpl) SendContacts(ctx context.Context, req *emailpb.SendContactsRequest, _ ...grpc.CallOption) (*emptypb.Empty, error) {
6666
for _, e := range req.Emails {
6767
err := m.SalesforceClient.SendContact(e)
6868
if err != nil {

salesforce/email/proto/emailexporter.pb.go

Lines changed: 3 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

salesforce/email/proto/emailexporter.proto

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
// NOTE: This service is deprecated in favor of salesforce.Exporter. It must be
2-
// kept in sync with salesforce.Exporter until we have fully migrated.
3-
//
4-
// TODO(#8410): Remove this service once we've fully migrated to
5-
// salesforce.Exporter
6-
71
syntax = "proto3";
82

93
package email;
10-
option go_package = "github.com/letsencrypt/boulder/salesforce/proto";
4+
option go_package = "github.com/letsencrypt/boulder/salesforce/email/proto";
115

126
import "google/protobuf/empty.proto";
137

salesforce/email/proto/emailexporter_grpc.pb.go

Lines changed: 0 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

salesforce/exporter.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/letsencrypt/boulder/core"
1414
berrors "github.com/letsencrypt/boulder/errors"
1515
blog "github.com/letsencrypt/boulder/log"
16-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
16+
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
1717
)
1818

1919
// contactsQueueCap limits the queue size to prevent unbounded growth. This
@@ -25,7 +25,7 @@ var ErrQueueFull = errors.New("email-exporter queue is full")
2525

2626
// ExporterImpl implements the gRPC server and processes email exports.
2727
type ExporterImpl struct {
28-
salesforcepb.UnsafeExporterServer
28+
emailpb.UnsafeExporterServer
2929

3030
sync.Mutex
3131
drainWG sync.WaitGroup
@@ -47,7 +47,7 @@ type ExporterImpl struct {
4747
log blog.Logger
4848
}
4949

50-
var _ salesforcepb.ExporterServer = (*ExporterImpl)(nil)
50+
var _ emailpb.ExporterServer = (*ExporterImpl)(nil)
5151

5252
// NewExporterImpl initializes an ExporterImpl with the given client and
5353
// configuration. Both perDayLimit and maxConcurrentRequests should be
@@ -97,7 +97,7 @@ func NewExporterImpl(client SalesforceClient, cache *EmailCache, perDayLimit flo
9797

9898
// SendContacts enqueues the provided email addresses. If the queue cannot
9999
// accommodate the new emails, an ErrQueueFull is returned.
100-
func (impl *ExporterImpl) SendContacts(ctx context.Context, req *salesforcepb.SendContactsRequest) (*emptypb.Empty, error) {
100+
func (impl *ExporterImpl) SendContacts(ctx context.Context, req *emailpb.SendContactsRequest) (*emptypb.Empty, error) {
101101
if core.IsAnyNilOrZero(req.Emails) {
102102
return nil, berrors.InternalServerError("Incomplete gRPC request message")
103103
}

salesforce/exporter_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010

1111
blog "github.com/letsencrypt/boulder/log"
1212
"github.com/letsencrypt/boulder/metrics"
13-
salesforcepb "github.com/letsencrypt/boulder/salesforce/proto"
13+
emailpb "github.com/letsencrypt/boulder/salesforce/email/proto"
1414
"github.com/letsencrypt/boulder/test"
1515

1616
"github.com/prometheus/client_golang/prometheus"
@@ -75,7 +75,7 @@ func TestSendContacts(t *testing.T) {
7575
defer cleanup()
7676

7777
wantContacts := []string{"test@example.com", "user@example.com"}
78-
_, err := exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
78+
_, err := exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
7979
Emails: wantContacts,
8080
})
8181
test.AssertNotError(t, err, "Error creating contacts")
@@ -104,7 +104,7 @@ func TestSendContactsQueueFull(t *testing.T) {
104104

105105
var err error
106106
for range contactsQueueCap * 2 {
107-
_, err = exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
107+
_, err = exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
108108
Emails: []string{"test@example.com"},
109109
})
110110
if err != nil {
@@ -125,7 +125,7 @@ func TestSendContactsQueueDrains(t *testing.T) {
125125
emails = append(emails, fmt.Sprintf("test@%d.example.com", i))
126126
}
127127

128-
_, err := exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
128+
_, err := exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
129129
Emails: emails,
130130
})
131131
test.AssertNotError(t, err, "Error creating contacts")
@@ -153,7 +153,7 @@ func TestSendContactsErrorMetrics(t *testing.T) {
153153
daemonCtx, cancel := context.WithCancel(context.Background())
154154
exporter.Start(daemonCtx)
155155

156-
_, err := exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
156+
_, err := exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
157157
Emails: []string{"test@example.com"},
158158
})
159159
test.AssertNotError(t, err, "Error creating contacts")
@@ -176,7 +176,7 @@ func TestSendContactDeduplication(t *testing.T) {
176176
daemonCtx, cancel := context.WithCancel(context.Background())
177177
exporter.Start(daemonCtx)
178178

179-
_, err := exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
179+
_, err := exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
180180
Emails: []string{"duplicate@example.com", "duplicate@example.com"},
181181
})
182182
test.AssertNotError(t, err, "Error enqueuing contacts")
@@ -208,7 +208,7 @@ func TestSendContactErrorRemovesFromCache(t *testing.T) {
208208
daemonCtx, cancel := context.WithCancel(context.Background())
209209
exporter.Start(daemonCtx)
210210

211-
_, err := exporter.SendContacts(ctx, &salesforcepb.SendContactsRequest{
211+
_, err := exporter.SendContacts(ctx, &emailpb.SendContactsRequest{
212212
Emails: []string{"error@example.com"},
213213
})
214214
test.AssertNotError(t, err, "enqueue failed")

0 commit comments

Comments
 (0)