diff --git a/src/pkg/repository/repository.go b/src/pkg/repository/repository.go index b88f8578a..fd94bdb32 100644 --- a/src/pkg/repository/repository.go +++ b/src/pkg/repository/repository.go @@ -209,12 +209,17 @@ func Connect( return nil, errors.Wrap(err, "constructing event bus") } - rm, err := getRepoModel(ctx, ms) - if err != nil { - return nil, errors.New("retrieving repo info") - } + rm := &repositoryModel{} - bus.SetRepoID(string(rm.ID)) + // Do not query repo ID if metrics are disabled + if !opts.DisableMetrics { + rm, err = getRepoModel(ctx, ms) + if err != nil { + return nil, errors.New("retrieving repo info") + } + + bus.SetRepoID(string(rm.ID)) + } complete <- struct{}{} diff --git a/src/pkg/repository/repository_test.go b/src/pkg/repository/repository_test.go index 301dda50e..d14d1abc7 100644 --- a/src/pkg/repository/repository_test.go +++ b/src/pkg/repository/repository_test.go @@ -219,3 +219,22 @@ func (suite *RepositoryIntegrationSuite) TestNewRestore() { require.NoError(t, err) require.NotNil(t, ro) } + +func (suite *RepositoryIntegrationSuite) TestConnect_DisableMetrics() { + ctx, flush := tester.NewContext() + defer flush() + + t := suite.T() + + // need to initialize the repository before we can test connecting to it. + st := tester.NewPrefixedS3Storage(t) + + _, err := repository.Initialize(ctx, account.Account{}, st, control.Options{}) + require.NoError(t, err) + + // now re-connect + r, err := repository.Connect(ctx, account.Account{}, st, control.Options{DisableMetrics: true}) + assert.NoError(t, err) + + assert.Equal(t, "", r.GetID()) +}