tracker: added a way for middleware constructors to fail

This commit is contained in:
Leo Balduf
2016-03-24 15:28:48 +01:00
parent 1874584eae
commit 230e0573c0
2 changed files with 17 additions and 8 deletions
+11 -2
View File
@@ -9,6 +9,7 @@ package tracker
import (
"errors"
"fmt"
"github.com/chihaya/chihaya"
)
@@ -36,7 +37,11 @@ func NewTracker(cfg *chihaya.TrackerConfig) (*Tracker, error) {
if !ok {
return nil, errors.New("failed to find announce middleware: " + mwConfig.Name)
}
achain.Append(mw(mwConfig))
middleware, err := mw(mwConfig)
if err != nil {
return nil, fmt.Errorf("failed to load announce middleware %q: %s", mwConfig.Name, err.Error())
}
achain.Append(middleware)
}
var schain scrapeChain
@@ -45,7 +50,11 @@ func NewTracker(cfg *chihaya.TrackerConfig) (*Tracker, error) {
if !ok {
return nil, errors.New("failed to find scrape middleware: " + mwConfig.Name)
}
schain.Append(mw(mwConfig))
middleware, err := mw(mwConfig)
if err != nil {
return nil, fmt.Errorf("failed to load scrape middleware %q: %s", mwConfig.Name, err.Error())
}
schain.Append(middleware)
}
return &Tracker{