Skip to content

Commit 310ed39

Browse files
committed
make batchupdate idempotent
1 parent 2f1ff34 commit 310ed39

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

store/etcdv3/meta/etcd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ func (e *ETCD) Grant(ctx context.Context, ttl int64) (*clientv3.LeaseGrantRespon
308308
func (e *ETCD) batchUpdate(ctx context.Context, data map[string]string, opts ...clientv3.OpOption) (*clientv3.TxnResponse, error) {
309309
limit := map[string]map[string]string{}
310310
for key := range data {
311-
limit[key] = map[string]string{cmpVersion: "!=", cmpValue: "!="} // ignore same data
311+
limit[key] = map[string]string{cmpVersion: "!="}
312312
}
313313
resp, err := e.batchPut(ctx, data, limit, opts...)
314314
if err != nil {

store/etcdv3/meta/etcd_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ func TestETCD(t *testing.T) {
326326
require.True(t, r.Succeeded)
327327
// UpdateFail
328328
r, err = m.Update(ctx, "test/3", "b")
329-
require.Error(t, err)
329+
require.NoError(t, err)
330330
require.False(t, r.Succeeded)
331331
// BatchUpdate
332332
data = map[string]string{
@@ -336,13 +336,13 @@ func TestETCD(t *testing.T) {
336336
r, err = m.BatchUpdate(ctx, data)
337337
require.NoError(t, err)
338338
require.True(t, r.Succeeded)
339-
// BatchUpdateFail
339+
// BatchUpdate
340340
data = map[string]string{
341341
"k1": "c1",
342342
"k3": "b2",
343343
}
344344
r, err = m.BatchUpdate(ctx, data)
345-
require.Error(t, err)
345+
require.NoError(t, err)
346346
require.False(t, r.Succeeded)
347347
// Watch
348348
ctx2, cancel := context.WithCancel(ctx)

store/etcdv3/node_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ func TestUpdateNode(t *testing.T) {
205205
},
206206
}
207207
assert.Error(t, m.UpdateNodes(ctx, fakeNode))
208-
assert.Error(t, m.UpdateNodes(ctx, node), "ETCD Txn condition failed")
208+
assert.NoError(t, m.UpdateNodes(ctx, node))
209209
node.Available = false
210210
assert.NoError(t, m.UpdateNodes(ctx, node))
211211
}

store/etcdv3/workload_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestAddORUpdateWorkload(t *testing.T) {
3636
assert.NoError(t, err)
3737
// success updat
3838
err = m.UpdateWorkload(ctx, workload)
39-
assert.Error(t, err, "ETCD Txn condition failed")
39+
assert.NoError(t, err)
4040
// success updat
4141
workload.Name = "test_app_2"
4242
err = m.UpdateWorkload(ctx, workload)

0 commit comments

Comments
 (0)