/* * Copyright (c) 2021 yedf. All rights reserved. * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ package dtmcli import ( "fmt" "github.com/dtm-labs/dtm/dtmcli/dtmimp" "github.com/go-resty/resty/v2" ) // MustGenGid generate a new gid func MustGenGid(server string) string { res := map[string]string{} resp, err := dtmimp.RestyClient.R().SetResult(&res).Get(server + "/newGid") if err != nil || res["gid"] == "" { panic(fmt.Errorf("newGid error: %v, resp: %s", err, resp)) } return res["gid"] } // DB interface type DB = dtmimp.DB // TransOptions transaction option type TransOptions = dtmimp.TransOptions // DBConf declares db configuration type DBConf = dtmimp.DBConf // String2DtmError translate string to dtm error func String2DtmError(str string) error { return map[string]error{ ResultFailure: ErrFailure, ResultOngoing: ErrOngoing, ResultSuccess: nil, "": nil, }[str] } // SetCurrentDBType set currentDBType func SetCurrentDBType(dbType string) { dtmimp.SetCurrentDBType(dbType) } // GetCurrentDBType get currentDBType func GetCurrentDBType() string { return dtmimp.GetCurrentDBType() } // SetXaSQLTimeoutMs set XaSQLTimeoutMs func SetXaSQLTimeoutMs(ms int) { dtmimp.XaSQLTimeoutMs = ms } // GetXaSQLTimeoutMs get XaSQLTimeoutMs func GetXaSQLTimeoutMs() int { return dtmimp.XaSQLTimeoutMs } // SetBarrierTableName sets barrier table name func SetBarrierTableName(tablename string) { dtmimp.BarrierTableName = tablename } // GetRestyClient get the resty.Client for http request func GetRestyClient() *resty.Client { return dtmimp.RestyClient } // SetPassthroughHeaders experimental. // apply to http header and grpc metadata // dtm server will save these headers in trans creating request. // and then passthrough them to sub-trans func SetPassthroughHeaders(headers []string) { dtmimp.PassthroughHeaders = headers }