diff --git a/dtmsvr/api.go b/dtmsvr/api.go index 785be64..fbe7cf9 100644 --- a/dtmsvr/api.go +++ b/dtmsvr/api.go @@ -71,6 +71,7 @@ func svcForceStop(t *TransGlobal) interface{} { if err != nil { return err } + t.ForceStopReason = "" dbt.statusFailed(string(extData)) branches := GetStore().FindBranches(t.Gid) return dbt.Process(branches) diff --git a/dtmsvr/storage/boltdb/boltdb.go b/dtmsvr/storage/boltdb/boltdb.go index 0c38708..4a124d7 100644 --- a/dtmsvr/storage/boltdb/boltdb.go +++ b/dtmsvr/storage/boltdb/boltdb.go @@ -364,6 +364,7 @@ func (s *Store) ChangeGlobalStatus(global *storage.TransGlobalStore, newStatus s dtmimp.E2P(err) } +// StatusFailed change global trans status to failed with reason func (s *Store) StatusFailed(global *storage.TransGlobalStore, updates []string) { old := global.Status global.Status = dtmcli.StatusFailed diff --git a/dtmsvr/storage/redis/redis.go b/dtmsvr/storage/redis/redis.go index 0d86099..3b63d0a 100644 --- a/dtmsvr/storage/redis/redis.go +++ b/dtmsvr/storage/redis/redis.go @@ -232,6 +232,7 @@ end dtmimp.E2P(err) } +// StatusFailed change global trans status to failed with reason func (s *Store) StatusFailed(global *storage.TransGlobalStore, updates []string) { old := global.Status global.Status = dtmcli.StatusFailed diff --git a/dtmsvr/storage/sql/sql.go b/dtmsvr/storage/sql/sql.go index a4b8945..923b60c 100644 --- a/dtmsvr/storage/sql/sql.go +++ b/dtmsvr/storage/sql/sql.go @@ -128,7 +128,7 @@ func (s *Store) ChangeGlobalStatus(global *storage.TransGlobalStore, newStatus s } } -// StatusFailed changes global trans status to failed +// StatusFailed change global trans status to failed with reason func (s *Store) StatusFailed(global *storage.TransGlobalStore, updates []string) { old := global.Status global.Status = dtmcli.StatusFailed diff --git a/dtmsvr/storage/trans.go b/dtmsvr/storage/trans.go index ed80f6d..b535065 100644 --- a/dtmsvr/storage/trans.go +++ b/dtmsvr/storage/trans.go @@ -39,7 +39,7 @@ type TransGlobalStore struct { NextCronTime *time.Time `json:"next_cron_time,omitempty"` Owner string `json:"owner,omitempty"` Ext TransGlobalExt `json:"-" gorm:"-"` - ForceStopReason string `json:"force_stop_reason" gorm:"-"` + ForceStopReason string `json:"force_stop_reason,omitempty" gorm:"-"` // only for request ExtData string `json:"ext_data,omitempty"` // storage of ext. a db field to store many values. like Options dtmcli.TransOptions } diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index 6d27df2..70cd54a 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -58,13 +58,14 @@ func (t *TransGlobal) changeStatus(status string) { t.Status = status } +// ExtDataType case extData type type ExtDataType string const ( - ExtDataTypeDefault ExtDataType = "" ExtDataTypeForceStop ExtDataType = "forceStop" ) +// ExtData custom extData struct type ExtData struct { Type ExtDataType `json:"type"` Msg string `json:"msg"`