Browse Source

grpc error reason

alpha
xyctruth 4 years ago
parent
commit
ef007b0461
  1. 3
      dtmgrpc/type.go
  2. 2
      test/busi/busi.go
  3. 2
      test/saga_grpc_test.go

3
dtmgrpc/type.go

@ -8,6 +8,7 @@ package dtmgrpc
import (
context "context"
"fmt"
"github.com/dtm-labs/dtm/dtmcli"
"github.com/dtm-labs/dtm/dtmcli/dtmimp"
@ -38,7 +39,7 @@ func GrpcError2DtmError(err error) error {
if st.Message() == dtmcli.ResultOngoing {
return dtmcli.ErrOngoing
}
return dtmcli.ErrFailure
return fmt.Errorf("%s. %w", st.Message(), dtmcli.ErrFailure)
} else if ok && st.Code() == codes.FailedPrecondition {
return dtmcli.ErrOngoing
}

2
test/busi/busi.go

@ -34,7 +34,7 @@ func handleGrpcBusiness(in *BusiReq, result1 string, result2 string, busi string
if res == dtmcli.ResultSuccess {
return nil
} else if res == dtmcli.ResultFailure {
return status.New(codes.Aborted, dtmcli.ResultFailure).Err()
return status.New(codes.Aborted, fmt.Sprintf("reason:%s. %s", MainSwitch.FailureReason.Fetch(), dtmimp.ErrFailure)).Err()
} else if res == dtmcli.ResultOngoing {
return status.New(codes.FailedPrecondition, dtmcli.ResultOngoing).Err()
}

2
test/saga_grpc_test.go

@ -28,6 +28,7 @@ func TestSagaGrpcNormal(t *testing.T) {
func TestSagaGrpcRollback(t *testing.T) {
gid := dtmimp.GetFuncName()
saga := genSagaGrpc(gid, false, true)
busi.MainSwitch.FailureReason.SetOnce("Insufficient balance")
busi.MainSwitch.TransOutRevertResult.SetOnce(dtmcli.ResultOngoing)
saga.Submit()
waitTransProcessed(saga.Gid)
@ -35,6 +36,7 @@ func TestSagaGrpcRollback(t *testing.T) {
cronTransOnce(t, gid)
assert.Equal(t, StatusFailed, getTransStatus(saga.Gid))
assert.Equal(t, []string{StatusSucceed, StatusSucceed, StatusSucceed, StatusFailed}, getBranchesStatus(saga.Gid))
assert.Equal(t, "url:localhost:58081/busi.Busi/TransIn return failed: reason:Insufficient balance. FAILURE. FAILURE", getTrans(saga.Gid).RollbackReason)
}
func TestSagaGrpcCurrent(t *testing.T) {

Loading…
Cancel
Save