Skip to content

Commit d6713f0

Browse files
authored
PBM-1159: Make ReadConcern Majority optional (#911)
* Introduce MongoOption functional options * Apply new interface for pkg connect * Add doc for connect.Connect func
1 parent 2ba76fc commit d6713f0

File tree

12 files changed

+81
-50
lines changed

12 files changed

+81
-50
lines changed

cmd/pbm-agent/agent.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,27 @@ type Agent struct {
4444
}
4545

4646
func newAgent(ctx context.Context, leadConn connect.Client, uri string, dumpConns int) (*Agent, error) {
47-
m, err := connect.MongoConnect(ctx, uri, &connect.MongoConnectOptions{Direct: true})
47+
nodeConn, err := connect.MongoConnect(ctx, uri, connect.Direct(true))
4848
if err != nil {
4949
return nil, err
5050
}
5151

52-
info, err := topo.GetNodeInfo(ctx, m)
52+
info, err := topo.GetNodeInfo(ctx, nodeConn)
5353
if err != nil {
5454
return nil, err
5555
}
5656

5757
a := &Agent{
5858
leadConn: leadConn,
5959
closeCMD: make(chan struct{}),
60+
nodeConn: nodeConn,
61+
brief: topo.NodeBrief{
62+
URI: uri,
63+
SetName: info.SetName,
64+
Me: info.Me,
65+
},
66+
dumpConns: dumpConns,
6067
}
61-
a.nodeConn = m
62-
a.brief = topo.NodeBrief{
63-
URI: uri,
64-
SetName: info.SetName,
65-
Me: info.Me,
66-
}
67-
a.dumpConns = dumpConns
6868
return a, nil
6969
}
7070

cmd/pbm-agent/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func runAgent(mongoURI string, dumpConns int) error {
8686
ctx, cancel := context.WithCancel(context.Background())
8787
defer cancel()
8888

89-
leadConn, err := connect.Connect(ctx, mongoURI, &connect.ConnectOptions{AppName: "pbm-agent"})
89+
leadConn, err := connect.Connect(ctx, mongoURI, "pbm-agent")
9090
if err != nil {
9191
return errors.Wrap(err, "connect to PBM")
9292
}

cmd/pbm-speed-test/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func testCompression(mURL string, compression compress.CompressionType, level *i
8686
var cn *mongo.Client
8787

8888
if collection != "" {
89-
cn, err := connect.MongoConnect(ctx, mURL, &connect.MongoConnectOptions{Direct: true})
89+
cn, err := connect.MongoConnect(ctx, mURL, connect.Direct(true))
9090
if err != nil {
9191
stdlog.Fatalln("Error: connect to mongodb-node:", err)
9292
}
@@ -108,13 +108,13 @@ func testCompression(mURL string, compression compress.CompressionType, level *i
108108
}
109109

110110
func testStorage(mURL string, compression compress.CompressionType, level *int, sizeGb float64, collection string) {
111-
sess, err := connect.MongoConnect(context.Background(), mURL, &connect.MongoConnectOptions{Direct: true})
111+
sess, err := connect.MongoConnect(context.Background(), mURL, connect.Direct(true))
112112
if err != nil {
113113
stdlog.Fatalln("Error: connect to mongodb-node:", err)
114114
}
115115
defer sess.Disconnect(context.Background()) //nolint:errcheck
116116

117-
client, err := connect.Connect(context.Background(), mURL, &connect.ConnectOptions{AppName: "pbm-speed-test"})
117+
client, err := connect.Connect(context.Background(), mURL, "pbm-speed-test")
118118
if err != nil {
119119
stdlog.Fatalln("Error: connect to mongodb-pbm:", err)
120120
}

cmd/pbm/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ func main() {
382382
// we don't need pbm connection if it is `pbm describe-restore -c ...`
383383
// or `pbm restore-finish `
384384
if describeRestoreOpts.cfg == "" && finishRestore.cfg == "" {
385-
conn, err = connect.Connect(ctx, *mURL, &connect.ConnectOptions{AppName: "pbm-ctl"})
385+
conn, err = connect.Connect(ctx, *mURL, "pbm-ctl")
386386
if err != nil {
387387
exitErr(errors.Wrap(err, "connect to mongodb"), pbmOutF)
388388
}

cmd/pbm/status.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313

1414
"go.mongodb.org/mongo-driver/bson/primitive"
1515
"go.mongodb.org/mongo-driver/mongo"
16-
"go.mongodb.org/mongo-driver/mongo/options"
1716
"golang.org/x/sync/errgroup"
1817

1918
"github.com/percona/percona-backup-mongodb/pbm/backup"
@@ -329,7 +328,7 @@ func directConnect(ctx context.Context, uri, hosts string) (*mongo.Client, error
329328
curi.RawQuery = query.Encode()
330329
curi.Host = host
331330

332-
conn, err := mongo.Connect(ctx, options.Client().ApplyURI(curi.String()).SetAppName("pbm-status"))
331+
conn, err := connect.MongoConnect(ctx, curi.String(), connect.AppName("pbm-status"))
333332
if err != nil {
334333
return nil, errors.Wrap(err, "connect")
335334
}

e2e-tests/cmd/ensure-oplog/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ const (
7878
)
7979

8080
func connTopo(ctx context.Context, uri string) (topo, error) {
81-
m, err := connect.MongoConnect(ctx, uri, nil)
81+
m, err := connect.MongoConnect(ctx, uri)
8282
if err != nil {
8383
return topoUnknown, errors.Wrap(err, "connect")
8484
}
@@ -162,7 +162,7 @@ func ensureClusterOplog(ctx context.Context, uri string, from, till primitive.Ti
162162
logger.Printf("[%s] ensuring cluster oplog: %s - %s",
163163
uri, formatTimestamp(from), formatTimestamp(from))
164164

165-
m, err := connect.MongoConnect(ctx, uri, nil)
165+
m, err := connect.MongoConnect(ctx, uri)
166166
if err != nil {
167167
return errors.Wrap(err, "connect")
168168
}
@@ -202,7 +202,7 @@ func ensureReplsetOplog(ctx context.Context, uri string, from, till primitive.Ti
202202
logger.Printf("[%s] ensure replset oplog: %s - %s",
203203
uri, formatTimestamp(from), formatTimestamp(from))
204204

205-
m, err := connect.MongoConnect(ctx, uri, nil)
205+
m, err := connect.MongoConnect(ctx, uri)
206206
if err != nil {
207207
return errors.Wrap(err, "connect")
208208
}
@@ -228,7 +228,7 @@ func ensureReplsetOplog(ctx context.Context, uri string, from, till primitive.Ti
228228
logger.Printf("[%s] ensuring replset oplog (actual): %s - %s",
229229
uri, formatTimestamp(firstOpT), formatTimestamp(lastOpT))
230230

231-
conn, err := connect.Connect(ctx, uri, &connect.ConnectOptions{AppName: "ensure-oplog"})
231+
conn, err := connect.Connect(ctx, uri, "ensure-oplog")
232232
if err != nil {
233233
return errors.Wrap(err, "connect to PBM")
234234
}

e2e-tests/pkg/pbm/mongo_pbm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type MongoPBM struct {
2525
}
2626

2727
func NewMongoPBM(ctx context.Context, connectionURI string) (*MongoPBM, error) {
28-
conn, err := connect.Connect(ctx, connectionURI, &connect.ConnectOptions{AppName: "e2e-tests-pbm"})
28+
conn, err := connect.Connect(ctx, connectionURI, "e2e-tests-pbm")
2929
if err != nil {
3030
return nil, errors.Wrap(err, "connect")
3131
}

e2e-tests/pkg/pbm/mongod.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type Mongo struct {
2222
}
2323

2424
func NewMongo(ctx context.Context, connectionURI string) (*Mongo, error) {
25-
cn, err := connect.MongoConnect(ctx, connectionURI, &connect.MongoConnectOptions{AppName: "e2e-tests"})
25+
cn, err := connect.MongoConnect(ctx, connectionURI, connect.AppName("e2e-tests"))
2626
if err != nil {
2727
return nil, errors.Wrap(err, "connect")
2828
}

e2e-tests/pkg/tests/state.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ func ClusterState(ctx context.Context, mongos *mongo.Client, creds *Credentials)
162162
uri = "mongodb://" + uri
163163

164164
eg.Go(func() error {
165-
m, err := connect.Connect(ctx, uri, nil)
165+
m, err := connect.Connect(ctx, uri, "pbm")
166166
if err != nil {
167167
return errors.Wrapf(err, "connect: %q", uri)
168168
}

pbm/backup/logical.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ func (b *Backup) doLogical(
216216
}
217217

218218
func dropTMPcoll(ctx context.Context, uri string) error {
219-
m, err := connect.MongoConnect(ctx, uri, nil)
219+
m, err := connect.MongoConnect(ctx, uri)
220220
if err != nil {
221221
return errors.Wrap(err, "connect to primary")
222222
}
@@ -251,7 +251,7 @@ func waitForWrite(ctx context.Context, m *mongo.Client, ts primitive.Timestamp)
251251

252252
//nolint:nonamedreturns
253253
func copyUsersNRolles(ctx context.Context, uri string) (lastWrite primitive.Timestamp, err error) {
254-
cn, err := connect.MongoConnect(ctx, uri, nil)
254+
cn, err := connect.MongoConnect(ctx, uri)
255255
if err != nil {
256256
return lastWrite, errors.Wrap(err, "connect to primary")
257257
}

0 commit comments

Comments
 (0)