SystemStore migration to return plain errors (#14835)
* SystemStore migration to return plain errors * Fix nilness * Fix translations * Fix merge * Fix layers * Fix merge errors * Lint: remove unnecessary use of sprint * Fix merge errors * Fix i18n Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
e8d431ee7c
Коммит
20e44399c7
@@ -4630,45 +4630,143 @@ func (s *RetryLayerStatusStore) UpdateLastActivityAt(userId string, lastActivity
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) Get() (model.StringMap, *model.AppError) {
|
||||
func (s *RetryLayerSystemStore) Get() (model.StringMap, error) {
|
||||
|
||||
return s.SystemStore.Get()
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.SystemStore.Get()
|
||||
if err == nil {
|
||||
return result, err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return result, err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return result, err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) GetByName(name string) (*model.System, *model.AppError) {
|
||||
func (s *RetryLayerSystemStore) GetByName(name string) (*model.System, error) {
|
||||
|
||||
return s.SystemStore.GetByName(name)
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.SystemStore.GetByName(name)
|
||||
if err == nil {
|
||||
return result, err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return result, err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return result, err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) InsertIfExists(system *model.System) (*model.System, *model.AppError) {
|
||||
func (s *RetryLayerSystemStore) InsertIfExists(system *model.System) (*model.System, error) {
|
||||
|
||||
return s.SystemStore.InsertIfExists(system)
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.SystemStore.InsertIfExists(system)
|
||||
if err == nil {
|
||||
return result, err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return result, err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return result, err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) PermanentDeleteByName(name string) (*model.System, *model.AppError) {
|
||||
func (s *RetryLayerSystemStore) PermanentDeleteByName(name string) (*model.System, error) {
|
||||
|
||||
return s.SystemStore.PermanentDeleteByName(name)
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.SystemStore.PermanentDeleteByName(name)
|
||||
if err == nil {
|
||||
return result, err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return result, err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return result, err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) Save(system *model.System) *model.AppError {
|
||||
func (s *RetryLayerSystemStore) Save(system *model.System) error {
|
||||
|
||||
return s.SystemStore.Save(system)
|
||||
tries := 0
|
||||
for {
|
||||
err := s.SystemStore.Save(system)
|
||||
if err == nil {
|
||||
return err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) SaveOrUpdate(system *model.System) *model.AppError {
|
||||
func (s *RetryLayerSystemStore) SaveOrUpdate(system *model.System) error {
|
||||
|
||||
return s.SystemStore.SaveOrUpdate(system)
|
||||
tries := 0
|
||||
for {
|
||||
err := s.SystemStore.SaveOrUpdate(system)
|
||||
if err == nil {
|
||||
return err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerSystemStore) Update(system *model.System) *model.AppError {
|
||||
func (s *RetryLayerSystemStore) Update(system *model.System) error {
|
||||
|
||||
return s.SystemStore.Update(system)
|
||||
tries := 0
|
||||
for {
|
||||
err := s.SystemStore.Update(system)
|
||||
if err == nil {
|
||||
return err
|
||||
}
|
||||
if !isRepeatableError(err) {
|
||||
return err
|
||||
}
|
||||
tries++
|
||||
if tries >= 3 {
|
||||
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user