From 5154f196fd2968f5372bc2ba7043b05e0e116856 Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Thu, 9 Dec 2021 21:03:42 +0800 Subject: [PATCH 1/2] fix grpc TransOptions not working --- dtmsvr/trans_class.go | 6 ++++++ test/saga_grpc_test.go | 9 +++++++++ test/saga_options_test.go | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/dtmsvr/trans_class.go b/dtmsvr/trans_class.go index 40fbc36..e434e4c 100644 --- a/dtmsvr/trans_class.go +++ b/dtmsvr/trans_class.go @@ -114,12 +114,18 @@ func TransFromContext(c *gin.Context) *TransGlobal { // TransFromDtmRequest TransFromContext func TransFromDtmRequest(c *dtmgimp.DtmRequest) *TransGlobal { + o := c.TransOptions r := TransGlobal{ Gid: c.Gid, TransType: c.TransType, QueryPrepared: c.QueryPrepared, Protocol: "grpc", BinPayloads: c.BinPayloads, + TransOptions: dtmcli.TransOptions{ + WaitResult: o.WaitResult, + TimeoutToFail: o.TimeoutToFail, + RetryInterval: o.RetryInterval, + }, } if c.Steps != "" { dtmimp.MustUnmarshalString(c.Steps, &r.Steps) diff --git a/test/saga_grpc_test.go b/test/saga_grpc_test.go index ed7dd90..ca06f07 100644 --- a/test/saga_grpc_test.go +++ b/test/saga_grpc_test.go @@ -66,6 +66,15 @@ func TestSagaGrpcCommittedOngoing(t *testing.T) { assert.Equal(t, []string{StatusPrepared, StatusSucceed, StatusPrepared, StatusSucceed}, getBranchesStatus(saga.Gid)) } +func TestSagaGrpcNormalWait(t *testing.T) { + saga := genSagaGrpc(dtmimp.GetFuncName(), false, false) + saga.SetOptions(&dtmcli.TransOptions{WaitResult: true}) + saga.Submit() + assert.Equal(t, []string{StatusPrepared, StatusSucceed, StatusPrepared, StatusSucceed}, getBranchesStatus(saga.Gid)) + assert.Equal(t, StatusSucceed, getTransStatus(saga.Gid)) + waitTransProcessed(saga.Gid) +} + func genSagaGrpc(gid string, outFailed bool, inFailed bool) *dtmgrpc.SagaGrpc { saga := dtmgrpc.NewSagaGrpc(examples.DtmGrpcServer, gid) req := examples.GenBusiReq(30, outFailed, inFailed) diff --git a/test/saga_options_test.go b/test/saga_options_test.go index a814e5a..7a11fcf 100644 --- a/test/saga_options_test.go +++ b/test/saga_options_test.go @@ -58,9 +58,9 @@ func TestSagaOptionsNormalWait(t *testing.T) { saga.SetOptions(&dtmcli.TransOptions{WaitResult: true}) err := saga.Submit() assert.Nil(t, err) - waitTransProcessed(saga.Gid) assert.Equal(t, []string{StatusPrepared, StatusSucceed, StatusPrepared, StatusSucceed}, getBranchesStatus(saga.Gid)) assert.Equal(t, StatusSucceed, getTransStatus(saga.Gid)) + waitTransProcessed(saga.Gid) } func TestSagaOptionsCommittedOngoingWait(t *testing.T) { From 8e138d751d78aa681df84a1d083224a2de428761 Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Thu, 9 Dec 2021 21:10:52 +0800 Subject: [PATCH 2/2] fix TransOptions --- dtmsvr/trans_class.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dtmsvr/trans_class.go b/dtmsvr/trans_class.go index e434e4c..bda1a37 100644 --- a/dtmsvr/trans_class.go +++ b/dtmsvr/trans_class.go @@ -114,7 +114,10 @@ func TransFromContext(c *gin.Context) *TransGlobal { // TransFromDtmRequest TransFromContext func TransFromDtmRequest(c *dtmgimp.DtmRequest) *TransGlobal { - o := c.TransOptions + o := &dtmgimp.DtmTransOptions{} + if c.TransOptions != nil { + o = c.TransOptions + } r := TransGlobal{ Gid: c.Gid, TransType: c.TransType,