MCPcopy Create free account
hub / github.com/cortexproject/cortex / prepare

Function prepare

pkg/compactor/compactor_test.go:1579–1628  ·  view source on GitHub ↗
(t *testing.T, compactorCfg Config, bucketClient objstore.InstrumentedBucket, limits *validation.Limits)

Source from the content-addressed store, hash-verified

1577}
1578
1579func prepare(t *testing.T, compactorCfg Config, bucketClient objstore.InstrumentedBucket, limits *validation.Limits) (*Compactor, *tsdbCompactorMock, *tsdbPlannerMock, *concurrency.SyncBuffer, prometheus.Gatherer) {
1580 storageCfg := cortex_tsdb.BlocksStorageConfig{}
1581 flagext.DefaultValues(&storageCfg)
1582 storageCfg.BucketStore.BlockDiscoveryStrategy = string(cortex_tsdb.RecursiveDiscovery)
1583 storageCfg.UsersScanner.Strategy = users.UserScanStrategyUserIndex
1584 storageCfg.UsersScanner.UpdateInterval = 100 * time.Millisecond // Short interval for testing
1585
1586 // Create a temporary directory for compactor data.
1587 compactorCfg.DataDir = t.TempDir()
1588
1589 tsdbCompactor := &tsdbCompactorMock{}
1590 tsdbPlanner := &tsdbPlannerMock{
1591 noCompactMarkFilters: []*compact.GatherNoCompactionMarkFilter{},
1592 }
1593 logs := &concurrency.SyncBuffer{}
1594 logger := log.NewLogfmtLogger(logs)
1595 registry := prometheus.NewRegistry()
1596
1597 if limits == nil {
1598 limits = &validation.Limits{}
1599 flagext.DefaultValues(limits)
1600 }
1601
1602 overrides := validation.NewOverrides(*limits, nil)
1603
1604 bucketClientFactory := func(ctx context.Context) (objstore.InstrumentedBucket, error) {
1605 return bucketClient, nil
1606 }
1607
1608 blocksCompactorFactory := func(ctx context.Context, cfg Config, logger log.Logger, reg prometheus.Registerer) (compact.Compactor, PlannerFactory, error) {
1609 return tsdbCompactor,
1610 func(ctx context.Context, bkt objstore.InstrumentedBucket, _ log.Logger, _ Config, noCompactMarkFilter *compact.GatherNoCompactionMarkFilter, ringLifecycle *ring.Lifecycler, _ string, _ prometheus.Counter, _ prometheus.Counter, _ *compactorMetrics) compact.Planner {
1611 tsdbPlanner.noCompactMarkFilters = append(tsdbPlanner.noCompactMarkFilters, noCompactMarkFilter)
1612 return tsdbPlanner
1613 },
1614 nil
1615 }
1616
1617 var blocksGrouperFactory BlocksGrouperFactory
1618 if compactorCfg.ShardingStrategy == util.ShardingStrategyShuffle {
1619 blocksGrouperFactory = ShuffleShardingGrouperFactory
1620 } else {
1621 blocksGrouperFactory = DefaultBlocksGrouperFactory
1622 }
1623
1624 c, err := newCompactor(compactorCfg, storageCfg, logger, registry, bucketClientFactory, blocksGrouperFactory, blocksCompactorFactory, DefaultBlockDeletableCheckerFactory, DefaultCompactionLifecycleCallbackFactory, overrides, 1)
1625 require.NoError(t, err)
1626
1627 return c, tsdbCompactor, tsdbPlanner, logs, registry
1628}
1629
1630type tsdbCompactorMock struct {
1631 mock.Mock

Calls 3

DefaultValuesFunction · 0.92
NewOverridesFunction · 0.92
newCompactorFunction · 0.85

Tested by

no test coverage detected