1package internal 2 3import ( 4 "time" 5 6 "github.com/influxdata/influxdb/services/meta" 7 "github.com/influxdata/influxql" 8) 9 10// MetaClientMock is a mockable implementation of meta.MetaClient. 11type MetaClientMock struct { 12 CloseFn func() error 13 CreateContinuousQueryFn func(database, name, query string) error 14 CreateDatabaseFn func(name string) (*meta.DatabaseInfo, error) 15 CreateDatabaseWithRetentionPolicyFn func(name string, spec *meta.RetentionPolicySpec) (*meta.DatabaseInfo, error) 16 CreateRetentionPolicyFn func(database string, spec *meta.RetentionPolicySpec, makeDefault bool) (*meta.RetentionPolicyInfo, error) 17 CreateShardGroupFn func(database, policy string, timestamp time.Time) (*meta.ShardGroupInfo, error) 18 CreateSubscriptionFn func(database, rp, name, mode string, destinations []string) error 19 CreateUserFn func(name, password string, admin bool) (meta.User, error) 20 21 DatabaseFn func(name string) *meta.DatabaseInfo 22 DatabasesFn func() []meta.DatabaseInfo 23 24 DataFn func() meta.Data 25 DeleteShardGroupFn func(database string, policy string, id uint64) error 26 DropContinuousQueryFn func(database, name string) error 27 DropDatabaseFn func(name string) error 28 DropRetentionPolicyFn func(database, name string) error 29 DropSubscriptionFn func(database, rp, name string) error 30 DropShardFn func(id uint64) error 31 DropUserFn func(name string) error 32 33 OpenFn func() error 34 35 PrecreateShardGroupsFn func(from, to time.Time) error 36 PruneShardGroupsFn func() error 37 38 RetentionPolicyFn func(database, name string) (rpi *meta.RetentionPolicyInfo, err error) 39 40 AuthenticateFn func(username, password string) (ui meta.User, err error) 41 AdminUserExistsFn func() bool 42 SetAdminPrivilegeFn func(username string, admin bool) error 43 SetDataFn func(*meta.Data) error 44 SetPrivilegeFn func(username, database string, p influxql.Privilege) error 45 ShardGroupsByTimeRangeFn func(database, policy string, min, max time.Time) (a []meta.ShardGroupInfo, err error) 46 ShardOwnerFn func(shardID uint64) (database, policy string, sgi *meta.ShardGroupInfo) 47 TruncateShardGroupsFn func(t time.Time) error 48 UpdateRetentionPolicyFn func(database, name string, rpu *meta.RetentionPolicyUpdate, makeDefault bool) error 49 UpdateUserFn func(name, password string) error 50 UserPrivilegeFn func(username, database string) (*influxql.Privilege, error) 51 UserPrivilegesFn func(username string) (map[string]influxql.Privilege, error) 52 UserFn func(username string) (meta.User, error) 53 UsersFn func() []meta.UserInfo 54} 55 56func (c *MetaClientMock) Close() error { 57 return c.CloseFn() 58} 59 60func (c *MetaClientMock) CreateContinuousQuery(database, name, query string) error { 61 return c.CreateContinuousQueryFn(database, name, query) 62} 63 64func (c *MetaClientMock) CreateDatabase(name string) (*meta.DatabaseInfo, error) { 65 return c.CreateDatabaseFn(name) 66} 67 68func (c *MetaClientMock) CreateDatabaseWithRetentionPolicy(name string, spec *meta.RetentionPolicySpec) (*meta.DatabaseInfo, error) { 69 return c.CreateDatabaseWithRetentionPolicyFn(name, spec) 70} 71 72func (c *MetaClientMock) CreateRetentionPolicy(database string, spec *meta.RetentionPolicySpec, makeDefault bool) (*meta.RetentionPolicyInfo, error) { 73 return c.CreateRetentionPolicyFn(database, spec, makeDefault) 74} 75 76func (c *MetaClientMock) CreateShardGroup(database, policy string, timestamp time.Time) (*meta.ShardGroupInfo, error) { 77 return c.CreateShardGroupFn(database, policy, timestamp) 78} 79 80func (c *MetaClientMock) CreateSubscription(database, rp, name, mode string, destinations []string) error { 81 return c.CreateSubscriptionFn(database, rp, name, mode, destinations) 82} 83 84func (c *MetaClientMock) CreateUser(name, password string, admin bool) (meta.User, error) { 85 return c.CreateUserFn(name, password, admin) 86} 87 88func (c *MetaClientMock) Database(name string) *meta.DatabaseInfo { 89 return c.DatabaseFn(name) 90} 91 92func (c *MetaClientMock) Databases() []meta.DatabaseInfo { 93 return c.DatabasesFn() 94} 95 96func (c *MetaClientMock) DeleteShardGroup(database string, policy string, id uint64) error { 97 return c.DeleteShardGroupFn(database, policy, id) 98} 99 100func (c *MetaClientMock) DropContinuousQuery(database, name string) error { 101 return c.DropContinuousQueryFn(database, name) 102} 103 104func (c *MetaClientMock) DropDatabase(name string) error { 105 return c.DropDatabaseFn(name) 106} 107 108func (c *MetaClientMock) DropRetentionPolicy(database, name string) error { 109 return c.DropRetentionPolicyFn(database, name) 110} 111 112func (c *MetaClientMock) DropShard(id uint64) error { 113 return c.DropShardFn(id) 114} 115 116func (c *MetaClientMock) DropSubscription(database, rp, name string) error { 117 return c.DropSubscriptionFn(database, rp, name) 118} 119 120func (c *MetaClientMock) DropUser(name string) error { 121 return c.DropUserFn(name) 122} 123 124func (c *MetaClientMock) RetentionPolicy(database, name string) (rpi *meta.RetentionPolicyInfo, err error) { 125 return c.RetentionPolicyFn(database, name) 126} 127 128func (c *MetaClientMock) SetAdminPrivilege(username string, admin bool) error { 129 return c.SetAdminPrivilegeFn(username, admin) 130} 131 132func (c *MetaClientMock) SetPrivilege(username, database string, p influxql.Privilege) error { 133 return c.SetPrivilegeFn(username, database, p) 134} 135 136func (c *MetaClientMock) ShardGroupsByTimeRange(database, policy string, min, max time.Time) (a []meta.ShardGroupInfo, err error) { 137 return c.ShardGroupsByTimeRangeFn(database, policy, min, max) 138} 139 140func (c *MetaClientMock) ShardOwner(shardID uint64) (database, policy string, sgi *meta.ShardGroupInfo) { 141 return c.ShardOwnerFn(shardID) 142} 143 144func (c *MetaClientMock) TruncateShardGroups(t time.Time) error { 145 return c.TruncateShardGroupsFn(t) 146} 147 148func (c *MetaClientMock) UpdateRetentionPolicy(database, name string, rpu *meta.RetentionPolicyUpdate, makeDefault bool) error { 149 return c.UpdateRetentionPolicyFn(database, name, rpu, makeDefault) 150} 151 152func (c *MetaClientMock) UpdateUser(name, password string) error { 153 return c.UpdateUserFn(name, password) 154} 155 156func (c *MetaClientMock) UserPrivilege(username, database string) (*influxql.Privilege, error) { 157 return c.UserPrivilegeFn(username, database) 158} 159 160func (c *MetaClientMock) UserPrivileges(username string) (map[string]influxql.Privilege, error) { 161 return c.UserPrivilegesFn(username) 162} 163 164func (c *MetaClientMock) Authenticate(username, password string) (meta.User, error) { 165 return c.AuthenticateFn(username, password) 166} 167func (c *MetaClientMock) AdminUserExists() bool { return c.AdminUserExistsFn() } 168 169func (c *MetaClientMock) User(username string) (meta.User, error) { return c.UserFn(username) } 170func (c *MetaClientMock) Users() []meta.UserInfo { return c.UsersFn() } 171 172func (c *MetaClientMock) Open() error { return c.OpenFn() } 173func (c *MetaClientMock) Data() meta.Data { return c.DataFn() } 174func (c *MetaClientMock) SetData(d *meta.Data) error { return c.SetDataFn(d) } 175 176func (c *MetaClientMock) PrecreateShardGroups(from, to time.Time) error { 177 return c.PrecreateShardGroupsFn(from, to) 178} 179func (c *MetaClientMock) PruneShardGroups() error { return c.PruneShardGroupsFn() } 180