Improve configuration error messages

This commit is contained in:
andig 2020-11-24 14:29:48 +01:00
parent 7235accba7
commit cf28ea19cf
5 changed files with 7 additions and 4 deletions

View file

@ -33,7 +33,7 @@ func NewFromConfig(typ string, other map[string]interface{}) (v api.Charger, err
factory, err := registry.Get(strings.ToLower(typ))
if err == nil {
if v, err = factory(other); err != nil {
err = fmt.Errorf("cannot create %s charger: %w", typ, err)
err = fmt.Errorf("cannot create type '%s': %w", typ, err)
}
} else {
err = fmt.Errorf("invalid charger type: %s", typ)

View file

@ -94,6 +94,7 @@ func (cp *ConfigProvider) configureMeters(conf config) error {
for _, cc := range conf.Meters {
m, err := meter.NewFromConfig(cc.Type, cc.Other)
if err != nil {
err = fmt.Errorf("cannot create meter '%s': %w", cc.Name, err)
return err
}
@ -112,6 +113,7 @@ func (cp *ConfigProvider) configureChargers(conf config) error {
for _, cc := range conf.Chargers {
c, err := charger.NewFromConfig(cc.Type, cc.Other)
if err != nil {
err = fmt.Errorf("cannot create charger '%s': %w", cc.Name, err)
return err
}
@ -130,6 +132,7 @@ func (cp *ConfigProvider) configureVehicles(conf config) error {
for _, cc := range conf.Vehicles {
v, err := vehicle.NewFromConfig(cc.Type, cc.Other)
if err != nil {
err = fmt.Errorf("cannot create vehicle '%s': %w", cc.Name, err)
return err
}

View file

@ -31,7 +31,7 @@ func NewFromConfig(typ string, other map[string]interface{}) (v api.Meter, err e
factory, err := registry.Get(strings.ToLower(typ))
if err == nil {
if v, err = factory(other); err != nil {
err = fmt.Errorf("cannot create %s meter: %w", typ, err)
err = fmt.Errorf("cannot create type '%s': %w", typ, err)
}
} else {
err = fmt.Errorf("invalid meter type: %s", typ)

View file

@ -64,7 +64,7 @@ func NewModbusFromConfig(other map[string]interface{}) (*Modbus, error) {
}
if cc.Model == "" && cc.Value != "" {
return nil, errors.New("need modbus model when value configured")
return nil, errors.New("need device model when value configured")
}
// no registered configured - need device

View file

@ -31,7 +31,7 @@ func NewFromConfig(typ string, other map[string]interface{}) (v api.Vehicle, err
factory, err := registry.Get(strings.ToLower(typ))
if err == nil {
if v, err = factory(other); err != nil {
err = fmt.Errorf("cannot create %s vehicle: %w", typ, err)
err = fmt.Errorf("cannot create type '%s': %w", typ, err)
}
} else {
err = fmt.Errorf("invalid vehicle type: %s", typ)