Skip to content

Commit e2fb7cd

Browse files
authored
REP-4790 Exclude all Mongosync internal DBs, including those used by the embedded verifier (#19)
This also includes some linting fixes and some tooling updates.
1 parent 2cb37c2 commit e2fb7cd

File tree

6 files changed

+34
-6
lines changed

6 files changed

+34
-6
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
dev-bin/
12
go.sum
3+
golangci-lint
24
migration_verifier
35
internal/verifier/mongodb_exec/
46
verifier_expansion.yml

internal/verifier/change_stream.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (verifier *Verifier) HandleChangeStreamEvent(ctx context.Context, changeEve
5050
case "update":
5151
return verifier.InsertChangeEventRecheckDoc(ctx, changeEvent)
5252
default:
53-
return fmt.Errorf(`Not supporting: "` + changeEvent.OpType + `" events`)
53+
return errors.New(`Not supporting: "` + changeEvent.OpType + `" events`)
5454
}
5555
}
5656

internal/verifier/list_namespaces.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"go.mongodb.org/mongo-driver/mongo/options"
1111
)
1212

13-
const (
14-
MongosyncMetaDB = "mongosync_reserved_for_internal_use"
13+
var (
14+
MongosyncMetaDBsPattern = `^mongosync_(internal|reserved)_`
1515
)
1616

1717
var (
@@ -29,9 +29,14 @@ func ListAllUserCollections(ctx context.Context, logger *logger.Logger, client *
2929
excludedDBs := []string{}
3030
excludedDBs = append(excludedDBs, additionalExcludedDBs...)
3131
excludedDBs = append(excludedDBs, ExcludedSystemDBs...)
32-
excludedDBs = append(excludedDBs, MongosyncMetaDB)
3332

34-
dbNames, err := client.ListDatabaseNames(ctx, bson.D{{"name", bson.D{{"$nin", excludedDBs}}}})
33+
var excluded []any
34+
for _, e := range excludedDBs {
35+
excluded = append(excluded, e)
36+
}
37+
excluded = append(excluded, primitive.Regex{Pattern: MongosyncMetaDBsPattern})
38+
39+
dbNames, err := client.ListDatabaseNames(ctx, bson.D{{"name", bson.D{{"$nin", excluded}}}})
3540
if err != nil {
3641
return nil, err
3742
}

internal/verifier/migration_verifier_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,8 +1265,14 @@ func (suite *MultiDataVersionTestSuite) TestVerifierNamespaceList() {
12651265
suite.Require().NoError(err)
12661266
err = suite.dstMongoClient.Database("testDb4").CreateCollection(ctx, "testColl6")
12671267
suite.Require().NoError(err)
1268+
err = suite.dstMongoClient.Database("local").CreateCollection(ctx, "testColl7")
1269+
suite.Require().NoError(err)
12681270
err = suite.dstMongoClient.Database("mongosync_reserved_for_internal_use").CreateCollection(ctx, "globalState")
12691271
suite.Require().NoError(err)
1272+
err = suite.dstMongoClient.Database("mongosync_reserved_for_verification_src_metadata").CreateCollection(ctx, "auditor")
1273+
suite.Require().NoError(err)
1274+
err = suite.dstMongoClient.Database("mongosync_reserved_for_verification_dst_metadata").CreateCollection(ctx, "auditor")
1275+
suite.Require().NoError(err)
12701276
err = verifier.setupAllNamespaceList(ctx)
12711277
suite.Require().NoError(err)
12721278
suite.ElementsMatch([]string{"testDb1.testColl1", "testDb1.testColl2", "testDb2.testColl3", "testDb2.testColl4",

internal/verifier/verification_task.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ type VerificationTask struct {
7171
// both clusters but don’t match.
7272
FailedDocs []VerificationResult `bson:"failed_docs,omitempty"`
7373

74-
QueryFilter QueryFilter `bson:"query_filter" json:"query_filter"`
74+
QueryFilter QueryFilter `bson:"query_filter" json:"query_filter"`
7575

7676
// DocumentCount is set when the verifier is done with the task
7777
// (whether we found mismatches or not).

precious.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# When adding new tidiers, consider what labels it should have. If it's fast, set labels like this:
2+
#
3+
# labels = [ "default", "fast-tidy" ]
4+
#
5+
# "Fast" here means anything less than 0.1s. These tidiers are intended to be invoked frequently,
6+
# for example from editors on save. Slower tidiers should only be invoked manually.
7+
8+
exclude = "vendor/**"
9+
10+
[commands.goimports]
11+
type = "tidy"
12+
include = "**/*.go"
13+
cmd = [ "$PRECIOUS_ROOT/dev-bin/goimports", "-w" ]
14+
ok-exit-codes = [0]
15+
labels = [ "default", "fast-tidy" ]

0 commit comments

Comments
 (0)