// checkRecovering checks if the backend can be recovered. func (m *systemMonitor) checkRecovering(rs loop.Recoverings) (loop.Recoverings, error) { if rs.Frequency(12, time.Minute) { logger.Errorf("monitor cannot be recovered: %v", rs.Last().Reason) return nil, errors.New(ErrMonitorCannotBeRecovered, errorMessages, rs.Last().Reason) } logger.Warningf("monitor recovered: %v", rs.Last().Reason) return rs.Trim(12), nil }
func catchTimeout(rs loop.Recoverings) (loop.Recoverings, error) { if len(rs) > 0 { if err, ok := rs.Last().Reason.(error); ok { if err.Error() == "timed out" { return nil, err } } } return nil, nil }