Skip to content

Commit

Permalink
fix: snmp input plugin errors if mibs folder doesn't exist (influxdat…
Browse files Browse the repository at this point in the history
  • Loading branch information
sajoupa authored Jan 11, 2022
1 parent bccecef commit 457c98f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
12 changes: 9 additions & 3 deletions internal/snmp/translate.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,17 @@ func LoadMibsFromPath(paths []string, log telegraf.Logger) error {
}

appendPath(mibPath)
folders = append(folders, mibPath)
err := filepath.Walk(mibPath, func(path string, info os.FileInfo, err error) error {
if info == nil {
return fmt.Errorf("no mibs found")
log.Warnf("No mibs found")
if os.IsNotExist(err) {
log.Warnf("MIB path doesn't exist: %q", mibPath)
} else if err != nil {
return err
}
return nil
}
folders = append(folders, mibPath)
// symlinks are files so we need to double check if any of them are folders
// Will check file vs directory later on
if info.Mode()&os.ModeSymlink != 0 {
Expand All @@ -71,7 +77,7 @@ func LoadMibsFromPath(paths []string, log telegraf.Logger) error {
return nil
})
if err != nil {
return fmt.Errorf("Filepath could not be walked: %v", err)
return fmt.Errorf("Filepath %q could not be walked: %v", mibPath, err)
}

for _, folder := range folders {
Expand Down
7 changes: 7 additions & 0 deletions plugins/inputs/snmp/snmp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1328,3 +1328,10 @@ func TestCanNotParse(t *testing.T) {
err := s.Init()
require.Error(t, err)
}

func TestMissingMibPath(t *testing.T) {
log := testutil.Logger{}
path := []string{"non-existing-directory"}
err := snmp.LoadMibsFromPath(path, log)
require.NoError(t, err)
}

0 comments on commit 457c98f

Please sign in to comment.