1package internal 2 3import ( 4 "io" 5 "time" 6 7 "github.com/influxdata/influxdb/models" 8 "github.com/influxdata/influxdb/query" 9 "github.com/influxdata/influxdb/tsdb" 10 "github.com/influxdata/influxql" 11 "go.uber.org/zap" 12) 13 14// TSDBStoreMock is a mockable implementation of tsdb.Store. 15type TSDBStoreMock struct { 16 BackupShardFn func(id uint64, since time.Time, w io.Writer) error 17 BackupSeriesFileFn func(database string, w io.Writer) error 18 ExportShardFn func(id uint64, ExportStart time.Time, ExportEnd time.Time, w io.Writer) error 19 CloseFn func() error 20 CreateShardFn func(database, policy string, shardID uint64, enabled bool) error 21 CreateShardSnapshotFn func(id uint64) (string, error) 22 DatabasesFn func() []string 23 DeleteDatabaseFn func(name string) error 24 DeleteMeasurementFn func(database, name string) error 25 DeleteRetentionPolicyFn func(database, name string) error 26 DeleteSeriesFn func(database string, sources []influxql.Source, condition influxql.Expr) error 27 DeleteShardFn func(id uint64) error 28 DiskSizeFn func() (int64, error) 29 ExpandSourcesFn func(sources influxql.Sources) (influxql.Sources, error) 30 ImportShardFn func(id uint64, r io.Reader) error 31 MeasurementSeriesCountsFn func(database string) (measuments int, series int) 32 MeasurementsCardinalityFn func(database string) (int64, error) 33 MeasurementNamesFn func(auth query.Authorizer, database string, cond influxql.Expr) ([][]byte, error) 34 OpenFn func() error 35 PathFn func() string 36 RestoreShardFn func(id uint64, r io.Reader) error 37 SeriesCardinalityFn func(database string) (int64, error) 38 SetShardEnabledFn func(shardID uint64, enabled bool) error 39 ShardFn func(id uint64) *tsdb.Shard 40 ShardGroupFn func(ids []uint64) tsdb.ShardGroup 41 ShardIDsFn func() []uint64 42 ShardNFn func() int 43 ShardRelativePathFn func(id uint64) (string, error) 44 ShardsFn func(ids []uint64) []*tsdb.Shard 45 StatisticsFn func(tags map[string]string) []models.Statistic 46 TagKeysFn func(auth query.Authorizer, shardIDs []uint64, cond influxql.Expr) ([]tsdb.TagKeys, error) 47 TagValuesFn func(auth query.Authorizer, shardIDs []uint64, cond influxql.Expr) ([]tsdb.TagValues, error) 48 WithLoggerFn func(log *zap.Logger) 49 WriteToShardFn func(shardID uint64, points []models.Point) error 50} 51 52func (s *TSDBStoreMock) BackupShard(id uint64, since time.Time, w io.Writer) error { 53 return s.BackupShardFn(id, since, w) 54} 55func (s *TSDBStoreMock) BackupSeriesFile(database string, w io.Writer) error { 56 return s.BackupSeriesFileFn(database, w) 57} 58func (s *TSDBStoreMock) ExportShard(id uint64, ExportStart time.Time, ExportEnd time.Time, w io.Writer) error { 59 return s.ExportShardFn(id, ExportStart, ExportEnd, w) 60} 61func (s *TSDBStoreMock) Close() error { return s.CloseFn() } 62func (s *TSDBStoreMock) CreateShard(database string, retentionPolicy string, shardID uint64, enabled bool) error { 63 return s.CreateShardFn(database, retentionPolicy, shardID, enabled) 64} 65func (s *TSDBStoreMock) CreateShardSnapshot(id uint64) (string, error) { 66 return s.CreateShardSnapshotFn(id) 67} 68func (s *TSDBStoreMock) Databases() []string { 69 return s.DatabasesFn() 70} 71func (s *TSDBStoreMock) DeleteDatabase(name string) error { 72 return s.DeleteDatabaseFn(name) 73} 74func (s *TSDBStoreMock) DeleteMeasurement(database string, name string) error { 75 return s.DeleteMeasurementFn(database, name) 76} 77func (s *TSDBStoreMock) DeleteRetentionPolicy(database string, name string) error { 78 return s.DeleteRetentionPolicyFn(database, name) 79} 80func (s *TSDBStoreMock) DeleteSeries(database string, sources []influxql.Source, condition influxql.Expr) error { 81 return s.DeleteSeriesFn(database, sources, condition) 82} 83func (s *TSDBStoreMock) DeleteShard(shardID uint64) error { 84 return s.DeleteShardFn(shardID) 85} 86func (s *TSDBStoreMock) DiskSize() (int64, error) { 87 return s.DiskSizeFn() 88} 89func (s *TSDBStoreMock) ExpandSources(sources influxql.Sources) (influxql.Sources, error) { 90 return s.ExpandSourcesFn(sources) 91} 92func (s *TSDBStoreMock) ImportShard(id uint64, r io.Reader) error { 93 return s.ImportShardFn(id, r) 94} 95func (s *TSDBStoreMock) MeasurementNames(auth query.Authorizer, database string, cond influxql.Expr) ([][]byte, error) { 96 return s.MeasurementNamesFn(auth, database, cond) 97} 98func (s *TSDBStoreMock) MeasurementSeriesCounts(database string) (measuments int, series int) { 99 return s.MeasurementSeriesCountsFn(database) 100} 101func (s *TSDBStoreMock) MeasurementsCardinality(database string) (int64, error) { 102 return s.MeasurementsCardinalityFn(database) 103} 104func (s *TSDBStoreMock) Open() error { 105 return s.OpenFn() 106} 107func (s *TSDBStoreMock) Path() string { 108 return s.PathFn() 109} 110func (s *TSDBStoreMock) RestoreShard(id uint64, r io.Reader) error { 111 return s.RestoreShardFn(id, r) 112} 113func (s *TSDBStoreMock) SeriesCardinality(database string) (int64, error) { 114 return s.SeriesCardinalityFn(database) 115} 116func (s *TSDBStoreMock) SetShardEnabled(shardID uint64, enabled bool) error { 117 return s.SetShardEnabledFn(shardID, enabled) 118} 119func (s *TSDBStoreMock) Shard(id uint64) *tsdb.Shard { 120 return s.ShardFn(id) 121} 122func (s *TSDBStoreMock) ShardGroup(ids []uint64) tsdb.ShardGroup { 123 return s.ShardGroupFn(ids) 124} 125func (s *TSDBStoreMock) ShardIDs() []uint64 { 126 return s.ShardIDsFn() 127} 128func (s *TSDBStoreMock) ShardN() int { 129 return s.ShardNFn() 130} 131func (s *TSDBStoreMock) ShardRelativePath(id uint64) (string, error) { 132 return s.ShardRelativePathFn(id) 133} 134func (s *TSDBStoreMock) Shards(ids []uint64) []*tsdb.Shard { 135 return s.ShardsFn(ids) 136} 137func (s *TSDBStoreMock) Statistics(tags map[string]string) []models.Statistic { 138 return s.StatisticsFn(tags) 139} 140func (s *TSDBStoreMock) TagKeys(auth query.Authorizer, shardIDs []uint64, cond influxql.Expr) ([]tsdb.TagKeys, error) { 141 return s.TagKeysFn(auth, shardIDs, cond) 142} 143func (s *TSDBStoreMock) TagValues(auth query.Authorizer, shardIDs []uint64, cond influxql.Expr) ([]tsdb.TagValues, error) { 144 return s.TagValuesFn(auth, shardIDs, cond) 145} 146func (s *TSDBStoreMock) WithLogger(log *zap.Logger) { 147 s.WithLoggerFn(log) 148} 149func (s *TSDBStoreMock) WriteToShard(shardID uint64, points []models.Point) error { 150 return s.WriteToShardFn(shardID, points) 151} 152