mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #5787 from heyitsanthony/compact-resp
clientv3, ctl3, clientv3/integration: add compact response to compact
This commit is contained in:
commit
ec232ec9d8
@ -210,7 +210,7 @@ func ExampleKV_compact() {
|
|||||||
compRev := resp.Header.Revision // specify compact revision of your choice
|
compRev := resp.Header.Revision // specify compact revision of your choice
|
||||||
|
|
||||||
ctx, cancel = context.WithTimeout(context.Background(), requestTimeout)
|
ctx, cancel = context.WithTimeout(context.Background(), requestTimeout)
|
||||||
err = cli.Compact(ctx, compRev)
|
_, err = cli.Compact(ctx, compRev)
|
||||||
cancel()
|
cancel()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -470,17 +470,17 @@ func TestKVCompactError(t *testing.T) {
|
|||||||
t.Fatalf("couldn't put 'foo' (%v)", err)
|
t.Fatalf("couldn't put 'foo' (%v)", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err := kv.Compact(ctx, 6)
|
_, err := kv.Compact(ctx, 6)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("couldn't compact 6 (%v)", err)
|
t.Fatalf("couldn't compact 6 (%v)", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = kv.Compact(ctx, 6)
|
_, err = kv.Compact(ctx, 6)
|
||||||
if err != rpctypes.ErrCompacted {
|
if err != rpctypes.ErrCompacted {
|
||||||
t.Fatalf("expected %v, got %v", rpctypes.ErrCompacted, err)
|
t.Fatalf("expected %v, got %v", rpctypes.ErrCompacted, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = kv.Compact(ctx, 100)
|
_, err = kv.Compact(ctx, 100)
|
||||||
if err != rpctypes.ErrFutureRev {
|
if err != rpctypes.ErrFutureRev {
|
||||||
t.Fatalf("expected %v, got %v", rpctypes.ErrFutureRev, err)
|
t.Fatalf("expected %v, got %v", rpctypes.ErrFutureRev, err)
|
||||||
}
|
}
|
||||||
@ -501,11 +501,11 @@ func TestKVCompact(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err := kv.Compact(ctx, 7)
|
_, err := kv.Compact(ctx, 7)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("couldn't compact kv space (%v)", err)
|
t.Fatalf("couldn't compact kv space (%v)", err)
|
||||||
}
|
}
|
||||||
err = kv.Compact(ctx, 7)
|
_, err = kv.Compact(ctx, 7)
|
||||||
if err == nil || err != rpctypes.ErrCompacted {
|
if err == nil || err != rpctypes.ErrCompacted {
|
||||||
t.Fatalf("error got %v, want %v", err, rpctypes.ErrCompacted)
|
t.Fatalf("error got %v, want %v", err, rpctypes.ErrCompacted)
|
||||||
}
|
}
|
||||||
@ -525,7 +525,7 @@ func TestKVCompact(t *testing.T) {
|
|||||||
t.Fatalf("wchan got %v, expected closed", wr)
|
t.Fatalf("wchan got %v, expected closed", wr)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = kv.Compact(ctx, 1000)
|
_, err = kv.Compact(ctx, 1000)
|
||||||
if err == nil || err != rpctypes.ErrFutureRev {
|
if err == nil || err != rpctypes.ErrFutureRev {
|
||||||
t.Fatalf("error got %v, want %v", err, rpctypes.ErrFutureRev)
|
t.Fatalf("error got %v, want %v", err, rpctypes.ErrFutureRev)
|
||||||
}
|
}
|
||||||
|
@ -375,7 +375,7 @@ func TestWatchResumeCompacted(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err := kv.Compact(context.TODO(), 3); err != nil {
|
if _, err := kv.Compact(context.TODO(), 3); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -414,7 +414,7 @@ func TestWatchCompactRevision(t *testing.T) {
|
|||||||
w := clientv3.NewWatcher(clus.RandClient())
|
w := clientv3.NewWatcher(clus.RandClient())
|
||||||
defer w.Close()
|
defer w.Close()
|
||||||
|
|
||||||
if err := kv.Compact(context.TODO(), 4); err != nil {
|
if _, err := kv.Compact(context.TODO(), 4); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
wch := w.Watch(context.Background(), "foo", clientv3.WithRev(2))
|
wch := w.Watch(context.Background(), "foo", clientv3.WithRev(2))
|
||||||
|
@ -20,10 +20,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
PutResponse pb.PutResponse
|
CompactResponse pb.CompactionResponse
|
||||||
GetResponse pb.RangeResponse
|
PutResponse pb.PutResponse
|
||||||
DeleteResponse pb.DeleteRangeResponse
|
GetResponse pb.RangeResponse
|
||||||
TxnResponse pb.TxnResponse
|
DeleteResponse pb.DeleteRangeResponse
|
||||||
|
TxnResponse pb.TxnResponse
|
||||||
)
|
)
|
||||||
|
|
||||||
type KV interface {
|
type KV interface {
|
||||||
@ -47,7 +48,7 @@ type KV interface {
|
|||||||
Delete(ctx context.Context, key string, opts ...OpOption) (*DeleteResponse, error)
|
Delete(ctx context.Context, key string, opts ...OpOption) (*DeleteResponse, error)
|
||||||
|
|
||||||
// Compact compacts etcd KV history before the given rev.
|
// Compact compacts etcd KV history before the given rev.
|
||||||
Compact(ctx context.Context, rev int64, opts ...CompactOption) error
|
Compact(ctx context.Context, rev int64, opts ...CompactOption) (*CompactResponse, error)
|
||||||
|
|
||||||
// Do applies a single Op on KV without a transaction.
|
// Do applies a single Op on KV without a transaction.
|
||||||
// Do is useful when declaring operations to be issued at a later time
|
// Do is useful when declaring operations to be issued at a later time
|
||||||
@ -98,11 +99,12 @@ func (kv *kv) Delete(ctx context.Context, key string, opts ...OpOption) (*Delete
|
|||||||
return r.del, toErr(ctx, err)
|
return r.del, toErr(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kv *kv) Compact(ctx context.Context, rev int64, opts ...CompactOption) error {
|
func (kv *kv) Compact(ctx context.Context, rev int64, opts ...CompactOption) (*CompactResponse, error) {
|
||||||
if _, err := kv.remote.Compact(ctx, OpCompact(rev, opts...).toRequest()); err != nil {
|
resp, err := kv.remote.Compact(ctx, OpCompact(rev, opts...).toRequest())
|
||||||
return toErr(ctx, err)
|
if err != nil {
|
||||||
|
return nil, toErr(ctx, err)
|
||||||
}
|
}
|
||||||
return nil
|
return (*CompactResponse)(resp), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kv *kv) Txn(ctx context.Context) Txn {
|
func (kv *kv) Txn(ctx context.Context) Txn {
|
||||||
|
@ -53,7 +53,7 @@ func compactionCommandFunc(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
c := mustClientFromCmd(cmd)
|
c := mustClientFromCmd(cmd)
|
||||||
ctx, cancel := commandCtx(cmd)
|
ctx, cancel := commandCtx(cmd)
|
||||||
cerr := c.Compact(ctx, rev, opts...)
|
_, cerr := c.Compact(ctx, rev, opts...)
|
||||||
cancel()
|
cancel()
|
||||||
if cerr != nil {
|
if cerr != nil {
|
||||||
ExitWithError(ExitError, cerr)
|
ExitWithError(ExitError, cerr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user