@@ -25,6 +25,7 @@ import (
2525 "github.com/cortexproject/cortex/pkg/storage/tsdb"
2626 "github.com/cortexproject/cortex/pkg/storage/tsdb/bucketindex"
2727 cortex_testutil "github.com/cortexproject/cortex/pkg/storage/tsdb/testutil"
28+ "github.com/cortexproject/cortex/pkg/storage/tsdb/users"
2829 "github.com/cortexproject/cortex/pkg/util"
2930 util_log "github.com/cortexproject/cortex/pkg/util/log"
3031 "github.com/cortexproject/cortex/pkg/util/services"
@@ -83,21 +84,25 @@ func TestBlockCleaner_KeyPermissionDenied(t *testing.T) {
8384 }
8485
8586 logger := log .NewNopLogger ()
86- scanner := tsdb .NewUsersScanner (mbucket , tsdb .AllUsers , logger )
87+ reg := prometheus .NewRegistry ()
88+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
89+ Strategy : tsdb .UserScanStrategyList ,
90+ }, mbucket , logger , reg )
91+ require .NoError (t , err )
8792 cfgProvider := newMockConfigProvider ()
8893 blocksMarkedForDeletion := prometheus .NewCounterVec (prometheus.CounterOpts {
8994 Name : blocksMarkedForDeletionName ,
9095 Help : blocksMarkedForDeletionHelp ,
9196 }, append (commonLabels , reasonLabelName ))
9297 dummyGaugeVec := prometheus .NewGaugeVec (prometheus.GaugeOpts {}, []string {"test" })
9398
94- cleaner := NewBlocksCleaner (cfg , mbucket , scanner , 60 * time .Second , cfgProvider , logger , "test-cleaner" , nil , time .Minute , 30 * time .Second , blocksMarkedForDeletion , dummyGaugeVec )
99+ cleaner := NewBlocksCleaner (cfg , mbucket , scanner , 60 * time .Second , cfgProvider , logger , "test-cleaner" , reg , time .Minute , 30 * time .Second , blocksMarkedForDeletion , dummyGaugeVec )
95100
96101 // Clean User with no error
97102 cleaner .bucketClient = bkt
98103 userLogger := util_log .WithUserID (userID , cleaner .logger )
99104 userBucket := bucket .NewUserBucketClient (userID , cleaner .bucketClient , cleaner .cfgProvider )
100- err : = cleaner .cleanUser (ctx , userLogger , userBucket , userID , false )
105+ err = cleaner .cleanUser (ctx , userLogger , userBucket , userID , false )
101106 require .NoError (t , err )
102107 s , err := bucketindex .ReadSyncStatus (ctx , bkt , userID , logger )
103108 require .NoError (t , err )
@@ -196,7 +201,10 @@ func testBlocksCleanerWithOptions(t *testing.T, options testBlocksCleanerOptions
196201
197202 reg := prometheus .NewPedanticRegistry ()
198203 logger := log .NewNopLogger ()
199- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
204+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
205+ Strategy : tsdb .UserScanStrategyList ,
206+ }, bucketClient , logger , reg )
207+ require .NoError (t , err )
200208 cfgProvider := newMockConfigProvider ()
201209 blocksMarkedForDeletion := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
202210 Name : blocksMarkedForDeletionName ,
@@ -364,7 +372,11 @@ func TestBlocksCleaner_ShouldContinueOnBlockDeletionFailure(t *testing.T) {
364372 }
365373
366374 logger := log .NewNopLogger ()
367- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
375+ reg := prometheus .NewRegistry ()
376+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
377+ Strategy : tsdb .UserScanStrategyList ,
378+ }, bucketClient , logger , reg )
379+ require .NoError (t , err )
368380 cfgProvider := newMockConfigProvider ()
369381 blocksMarkedForDeletion := prometheus .NewCounterVec (prometheus.CounterOpts {
370382 Name : blocksMarkedForDeletionName ,
@@ -429,7 +441,11 @@ func TestBlocksCleaner_ShouldRebuildBucketIndexOnCorruptedOne(t *testing.T) {
429441 }
430442
431443 logger := log .NewNopLogger ()
432- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
444+ reg := prometheus .NewRegistry ()
445+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
446+ Strategy : tsdb .UserScanStrategyList ,
447+ }, bucketClient , logger , reg )
448+ require .NoError (t , err )
433449 cfgProvider := newMockConfigProvider ()
434450 blocksMarkedForDeletion := prometheus .NewCounterVec (prometheus.CounterOpts {
435451 Name : blocksMarkedForDeletionName ,
@@ -487,8 +503,11 @@ func TestBlocksCleaner_ShouldRemoveMetricsForTenantsNotBelongingAnymoreToTheShar
487503
488504 ctx := context .Background ()
489505 logger := log .NewNopLogger ()
490- reg := prometheus .NewPedanticRegistry ()
491- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
506+ reg := prometheus .NewRegistry ()
507+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
508+ Strategy : tsdb .UserScanStrategyList ,
509+ }, bucketClient , logger , reg )
510+ require .NoError (t , err )
492511 cfgProvider := newMockConfigProvider ()
493512 blocksMarkedForDeletion := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
494513 Name : blocksMarkedForDeletionName ,
@@ -522,7 +541,11 @@ func TestBlocksCleaner_ShouldRemoveMetricsForTenantsNotBelongingAnymoreToTheShar
522541 ))
523542
524543 // Override the users scanner to reconfigure it to only return a subset of users.
525- cleaner .usersScanner = tsdb .NewUsersScanner (bucketClient , func (userID string ) (bool , error ) { return userID == "user-1" , nil }, logger )
544+ cleaner .usersScanner , err = users .NewScanner (tsdb.UsersScannerConfig {
545+ Strategy : tsdb .UserScanStrategyList ,
546+ }, bucketClient , logger , reg )
547+ require .NoError (t , err )
548+ cleaner .usersScanner = users .NewShardedScanner (cleaner .usersScanner , func (userID string ) (bool , error ) { return userID == "user-1" , nil }, logger )
526549
527550 // Create new blocks, to double check expected metrics have changed.
528551 createTSDBBlock (t , bucketClient , "user-1" , 40 , 50 , nil )
@@ -630,7 +653,10 @@ func TestBlocksCleaner_ShouldRemoveBlocksOutsideRetentionPeriod(t *testing.T) {
630653 ctx := context .Background ()
631654 logger := log .NewNopLogger ()
632655 reg := prometheus .NewPedanticRegistry ()
633- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
656+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
657+ Strategy : tsdb .UserScanStrategyList ,
658+ }, bucketClient , logger , reg )
659+ require .NoError (t , err )
634660 cfgProvider := newMockConfigProvider ()
635661 blocksMarkedForDeletion := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
636662 Name : blocksMarkedForDeletionName ,
@@ -859,7 +885,10 @@ func TestBlocksCleaner_CleanPartitionedGroupInfo(t *testing.T) {
859885 ctx := context .Background ()
860886 logger := log .NewNopLogger ()
861887 reg := prometheus .NewPedanticRegistry ()
862- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
888+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
889+ Strategy : tsdb .UserScanStrategyList ,
890+ }, bucketClient , logger , reg )
891+ require .NoError (t , err )
863892 cfgProvider := newMockConfigProvider ()
864893 blocksMarkedForDeletion := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
865894 Name : blocksMarkedForDeletionName ,
@@ -885,7 +914,7 @@ func TestBlocksCleaner_CleanPartitionedGroupInfo(t *testing.T) {
885914 CreationTime : time .Now ().Add (- 5 * time .Minute ).Unix (),
886915 Version : PartitionedGroupInfoVersion1 ,
887916 }
888- _ , err : = UpdatePartitionedGroupInfo (ctx , userBucket , logger , partitionedGroupInfo )
917+ _ , err = UpdatePartitionedGroupInfo (ctx , userBucket , logger , partitionedGroupInfo )
889918 require .NoError (t , err )
890919
891920 visitMarker := & partitionVisitMarker {
@@ -931,7 +960,10 @@ func TestBlocksCleaner_DeleteEmptyBucketIndex(t *testing.T) {
931960 ctx := context .Background ()
932961 logger := log .NewNopLogger ()
933962 reg := prometheus .NewPedanticRegistry ()
934- scanner := tsdb .NewUsersScanner (bucketClient , tsdb .AllUsers , logger )
963+ scanner , err := users .NewScanner (tsdb.UsersScannerConfig {
964+ Strategy : tsdb .UserScanStrategyList ,
965+ }, bucketClient , logger , reg )
966+ require .NoError (t , err )
935967 cfgProvider := newMockConfigProvider ()
936968 blocksMarkedForDeletion := promauto .With (reg ).NewCounterVec (prometheus.CounterOpts {
937969 Name : blocksMarkedForDeletionName ,
@@ -960,7 +992,7 @@ func TestBlocksCleaner_DeleteEmptyBucketIndex(t *testing.T) {
960992 CreationTime : time .Now ().Add (- 5 * time .Minute ).Unix (),
961993 Version : PartitionedGroupInfoVersion1 ,
962994 }
963- _ , err : = UpdatePartitionedGroupInfo (ctx , userBucket , logger , partitionedGroupInfo )
995+ _ , err = UpdatePartitionedGroupInfo (ctx , userBucket , logger , partitionedGroupInfo )
964996 require .NoError (t , err )
965997 partitionedGroupFile := GetPartitionedGroupFile (partitionedGroupInfo .PartitionedGroupID )
966998
0 commit comments