cmd/chihaya: refactor out combination of errors
This commit is contained in:
parent
68cbe0fc21
commit
23e9719073
1 changed files with 12 additions and 22 deletions
|
@ -5,6 +5,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
|
@ -83,36 +84,25 @@ func (r *Run) Start(ps storage.PeerStore) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func combineErrors(prefix string, errs []error) error {
|
||||||
|
var errStrs []string
|
||||||
|
for _, err := range errs {
|
||||||
|
errStrs = append(errStrs, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors.New(prefix + ": " + strings.Join(errStrs, "; "))
|
||||||
|
}
|
||||||
|
|
||||||
// Stop shuts down an instance of Chihaya.
|
// Stop shuts down an instance of Chihaya.
|
||||||
func (r *Run) Stop(keepPeerStore bool) (storage.PeerStore, error) {
|
func (r *Run) Stop(keepPeerStore bool) (storage.PeerStore, error) {
|
||||||
log.Debug("stopping frontends and prometheus endpoint")
|
log.Debug("stopping frontends and prometheus endpoint")
|
||||||
if errs := r.sg.Stop(); len(errs) != 0 {
|
if errs := r.sg.Stop(); len(errs) != 0 {
|
||||||
errDelimiter := "; "
|
return nil, combineErrors("failed while shutting down frontends", errs)
|
||||||
errStr := "failed while shutting down frontends: "
|
|
||||||
|
|
||||||
for _, err := range errs {
|
|
||||||
errStr += err.Error() + errDelimiter
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove the last delimiter.
|
|
||||||
errStr = errStr[0 : len(errStr)-len(errDelimiter)]
|
|
||||||
|
|
||||||
return nil, errors.New(errStr)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debug("stopping logic")
|
log.Debug("stopping logic")
|
||||||
if errs := r.logic.Stop(); len(errs) != 0 {
|
if errs := r.logic.Stop(); len(errs) != 0 {
|
||||||
errDelimiter := "; "
|
return nil, combineErrors("failed while shutting down middleware", errs)
|
||||||
errStr := "failed while shutting down middleware: "
|
|
||||||
|
|
||||||
for _, err := range errs {
|
|
||||||
errStr += err.Error() + errDelimiter
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove the last delimiter.
|
|
||||||
errStr = errStr[0 : len(errStr)-len(errDelimiter)]
|
|
||||||
|
|
||||||
return nil, errors.New(errStr)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !keepPeerStore {
|
if !keepPeerStore {
|
||||||
|
|
Loading…
Add table
Reference in a new issue