use AddError everywhere (#2372)

This commit is contained in:
Patrick Hemmer
2017-04-24 14:13:26 -04:00
committed by Daniel Nelson
parent 801f6cb8a0
commit 06baf7cf78
95 changed files with 341 additions and 531 deletions

View File

@@ -5,7 +5,6 @@ package sysstat
import (
"bufio"
"encoding/csv"
"errors"
"fmt"
"io"
"log"
@@ -149,34 +148,20 @@ func (s *Sysstat) Gather(acc telegraf.Accumulator) error {
return err
}
var wg sync.WaitGroup
errorChannel := make(chan error, len(s.Options)*2)
for option := range s.Options {
wg.Add(1)
go func(acc telegraf.Accumulator, option string) {
defer wg.Done()
if err := s.parse(acc, option, ts); err != nil {
errorChannel <- err
}
acc.AddError(s.parse(acc, option, ts))
}(acc, option)
}
wg.Wait()
close(errorChannel)
errorStrings := []string{}
for err := range errorChannel {
errorStrings = append(errorStrings, err.Error())
}
if _, err := os.Stat(s.tmpFile); err == nil {
if err := os.Remove(s.tmpFile); err != nil {
errorStrings = append(errorStrings, err.Error())
}
acc.AddError(os.Remove(s.tmpFile))
}
if len(errorStrings) == 0 {
return nil
}
return errors.New(strings.Join(errorStrings, "\n"))
return nil
}
// collect collects sysstat data with the collector utility sadc.

View File

@@ -26,14 +26,14 @@ func TestInterval(t *testing.T) {
s.interval = 0
wantedInterval := 3
err := s.Gather(&acc)
err := acc.GatherError(s.Gather)
if err != nil {
t.Fatal(err)
}
time.Sleep(time.Duration(wantedInterval) * time.Second)
err = s.Gather(&acc)
err = acc.GatherError(s.Gather)
if err != nil {
t.Fatal(err)
}

View File

@@ -37,7 +37,7 @@ func TestGather(t *testing.T) {
defer func() { execCommand = exec.Command }()
var acc testutil.Accumulator
err := s.Gather(&acc)
err := acc.GatherError(s.Gather)
if err != nil {
t.Fatal(err)
}
@@ -160,7 +160,7 @@ func TestGatherGrouped(t *testing.T) {
defer func() { execCommand = exec.Command }()
var acc testutil.Accumulator
err := s.Gather(&acc)
err := acc.GatherError(s.Gather)
if err != nil {
t.Fatal(err)
}