mirror of
https://github.com/gravitational/teleport
synced 2024-10-20 01:03:40 +00:00
Remove unused backend.Batch interface (#31941)
Only two backends implemented the interface and it was only being used by tests.
This commit is contained in:
parent
47cb793a17
commit
4aa7470a74
|
@ -139,14 +139,6 @@ func StreamRange(ctx context.Context, bk Backend, startKey, endKey []byte, pageS
|
|||
})
|
||||
}
|
||||
|
||||
// Batch implements some batch methods
|
||||
// that are not mandatory for all interfaces,
|
||||
// only the ones used in bulk operations.
|
||||
type Batch interface {
|
||||
// PutRange puts range of items in one transaction
|
||||
PutRange(ctx context.Context, items []Item) error
|
||||
}
|
||||
|
||||
// Lease represents a lease on the item that can be used
|
||||
// to extend item's TTL without updating its contents.
|
||||
//
|
||||
|
|
|
@ -100,7 +100,7 @@ type Config struct {
|
|||
// Journal sets the journal_mode pragma
|
||||
Journal string `json:"journal,omitempty"`
|
||||
// Mirror turns on mirror mode for the backend,
|
||||
// which will use record IDs for Put and PutRange passed from
|
||||
// which will use record IDs for Put passed from
|
||||
// the resources, not generate a new one
|
||||
Mirror bool `json:"mirror"`
|
||||
}
|
||||
|
@ -583,23 +583,6 @@ func (l *Backend) Import(ctx context.Context, items []backend.Item) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// PutRange puts range of items into backend (creates if items doe not
|
||||
// exists, updates it otherwise)
|
||||
func (l *Backend) PutRange(ctx context.Context, items []backend.Item) error {
|
||||
for i := range items {
|
||||
if items[i].Key == nil {
|
||||
return trace.BadParameter("missing parameter key in item %v", i)
|
||||
}
|
||||
}
|
||||
err := l.inTransaction(ctx, func(tx *sql.Tx) error {
|
||||
return l.putRangeInTransaction(ctx, tx, items, false)
|
||||
})
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *Backend) putRangeInTransaction(ctx context.Context, tx *sql.Tx, items []backend.Item, forceEventsOff bool) error {
|
||||
var eventsStmt *sql.Stmt
|
||||
var err error
|
||||
|
|
|
@ -61,7 +61,7 @@ type Config struct {
|
|||
// BufferSize sets up event buffer size
|
||||
BufferSize int
|
||||
// Mirror mode is used when the memory backend is used for caching. In mirror
|
||||
// mode, record IDs for Put and PutRange requests are re-used (instead of
|
||||
// mode, record IDs for Put requests are re-used (instead of
|
||||
// generating fresh ones) and expiration is turned off.
|
||||
Mirror bool
|
||||
}
|
||||
|
@ -243,33 +243,6 @@ func (m *Memory) Put(ctx context.Context, i backend.Item) (*backend.Lease, error
|
|||
return m.newLease(i), nil
|
||||
}
|
||||
|
||||
// PutRange puts range of items into backend (creates if items do not
|
||||
// exist, updates it otherwise)
|
||||
func (m *Memory) PutRange(ctx context.Context, items []backend.Item) error {
|
||||
for i := range items {
|
||||
if items[i].Key == nil {
|
||||
return trace.BadParameter("missing parameter key in item %v", i)
|
||||
}
|
||||
}
|
||||
m.Lock()
|
||||
defer m.Unlock()
|
||||
m.removeExpired()
|
||||
for _, item := range items {
|
||||
event := backend.Event{
|
||||
Type: types.OpPut,
|
||||
Item: item,
|
||||
}
|
||||
if !m.Mirror {
|
||||
event.Item.ID = m.generateID()
|
||||
}
|
||||
m.processEvent(event)
|
||||
if !m.EventsOff {
|
||||
m.buf.Emit(event)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete deletes item by key, returns NotFound error
|
||||
// if item does not exist
|
||||
func (m *Memory) Delete(ctx context.Context, key []byte) error {
|
||||
|
|
|
@ -141,10 +141,6 @@ func RunBackendComplianceSuite(t *testing.T, newBackend Constructor) {
|
|||
testDeleteRange(t, newBackend)
|
||||
})
|
||||
|
||||
t.Run("PutRange", func(t *testing.T) {
|
||||
testPutRange(t, newBackend)
|
||||
})
|
||||
|
||||
t.Run("CompareAndSwap", func(t *testing.T) {
|
||||
testCompareAndSwap(t, newBackend)
|
||||
})
|
||||
|
@ -362,32 +358,6 @@ func testDeleteRange(t *testing.T, newBackend Constructor) {
|
|||
RequireItems(t, []backend.Item{a, b}, result.Items)
|
||||
}
|
||||
|
||||
// testPutRange tests scenarios with put range
|
||||
func testPutRange(t *testing.T, newBackend Constructor) {
|
||||
uut, _, err := newBackend()
|
||||
require.NoError(t, err)
|
||||
defer func() { require.NoError(t, uut.Close()) }()
|
||||
|
||||
batchUut, ok := uut.(backend.Batch)
|
||||
if !ok {
|
||||
t.Skip("Backend should support Batch interface for this test")
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
prefix := MakePrefix()
|
||||
a := backend.Item{Key: prefix("/prefix/a"), Value: []byte("val a")}
|
||||
b := backend.Item{Key: prefix("/prefix/b"), Value: []byte("val b")}
|
||||
|
||||
// add one element that should not show up (i.e. a duplicate `a`)
|
||||
err = batchUut.PutRange(ctx, []backend.Item{a, b, a})
|
||||
require.NoError(t, err)
|
||||
|
||||
// prefix range fetch
|
||||
result, err := uut.GetRange(ctx, prefix("/prefix"), backend.RangeEnd(prefix("/prefix")), backend.NoLimit)
|
||||
require.NoError(t, err)
|
||||
RequireItems(t, []backend.Item{a, b}, result.Items)
|
||||
}
|
||||
|
||||
// testCompareAndSwap tests compare and swap functionality
|
||||
func testCompareAndSwap(t *testing.T, newBackend Constructor) {
|
||||
uut, _, err := newBackend()
|
||||
|
|
Loading…
Reference in a new issue