Browse Source

Merge pull request #215 from dtm-labs/alpha

support grpc and http mixed up
pull/217/head v1.12.2
yedf2 4 years ago
committed by GitHub
parent
commit
7a4f8bd255
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 52
      dtmsvr/trans_status.go

52
dtmsvr/trans_status.go

@ -76,39 +76,39 @@ func (t *TransGlobal) getURLResult(url string, branchID, op string, branchPayloa
if url == "" { // empty url is success
return nil
}
if t.Protocol == "grpc" {
dtmimp.PanicIf(strings.HasPrefix(url, "http"), fmt.Errorf("bad url for grpc: %s", url))
server, method, err := dtmdriver.GetDriver().ParseServerMethod(url)
if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") {
resp, err := dtmimp.RestyClient.R().SetBody(string(branchPayload)).
SetQueryParams(map[string]string{
"gid": t.Gid,
"trans_type": t.TransType,
"branch_id": branchID,
"op": op,
}).
SetHeader("Content-type", "application/json").
SetHeaders(t.Ext.Headers).
SetHeaders(t.TransOptions.BranchHeaders).
Execute(dtmimp.If(branchPayload != nil || t.TransType == "xa", "POST", "GET").(string), url)
if err != nil {
return err
}
conn := dtmgimp.MustGetGrpcConn(server, true)
ctx := dtmgimp.TransInfo2Ctx(t.Gid, t.TransType, branchID, op, "")
kvs := dtmgimp.Map2Kvs(t.Ext.Headers)
kvs = append(kvs, dtmgimp.Map2Kvs(t.BranchHeaders)...)
ctx = metadata.AppendToOutgoingContext(ctx, kvs...)
err = conn.Invoke(ctx, method, branchPayload, &[]byte{})
if err == nil {
return nil
}
return dtmgrpc.GrpcError2DtmError(err)
return dtmimp.RespAsErrorCompatible(resp)
}
dtmimp.PanicIf(!strings.HasPrefix(url, "http"), fmt.Errorf("bad url for http: %s", url))
resp, err := dtmimp.RestyClient.R().SetBody(string(branchPayload)).
SetQueryParams(map[string]string{
"gid": t.Gid,
"trans_type": t.TransType,
"branch_id": branchID,
"op": op,
}).
SetHeader("Content-type", "application/json").
SetHeaders(t.Ext.Headers).
SetHeaders(t.TransOptions.BranchHeaders).
Execute(dtmimp.If(branchPayload != nil || t.TransType == "xa", "POST", "GET").(string), url)
dtmimp.PanicIf(t.Protocol == "http", fmt.Errorf("bad url for http: %s", url))
// grpc handler
server, method, err := dtmdriver.GetDriver().ParseServerMethod(url)
if err != nil {
return err
}
return dtmimp.RespAsErrorCompatible(resp)
conn := dtmgimp.MustGetGrpcConn(server, true)
ctx := dtmgimp.TransInfo2Ctx(t.Gid, t.TransType, branchID, op, "")
kvs := dtmgimp.Map2Kvs(t.Ext.Headers)
kvs = append(kvs, dtmgimp.Map2Kvs(t.BranchHeaders)...)
ctx = metadata.AppendToOutgoingContext(ctx, kvs...)
err = conn.Invoke(ctx, method, branchPayload, &[]byte{})
if err == nil {
return nil
}
return dtmgrpc.GrpcError2DtmError(err)
}
func (t *TransGlobal) getBranchResult(branch *TransBranch) (string, error) {

Loading…
Cancel
Save