upgrading to go 1.18 for generics (and lodash-like library).

devices with an empty wwn should be filtered out (not uploaded during device registration, skipped when attempting to upload metrics).
added a migration to delete existing device entries with an empty `wwn`

fixes #314
This commit is contained in:
Jason Kulatunga
2022-07-09 18:28:49 -07:00
parent 30bd18f816
commit 5ea149d878
11 changed files with 51 additions and 19 deletions
+7 -1
View File
@@ -9,6 +9,7 @@ import (
"github.com/analogj/scrutiny/collector/pkg/detect"
"github.com/analogj/scrutiny/collector/pkg/errors"
"github.com/analogj/scrutiny/collector/pkg/models"
"github.com/samber/lo"
"github.com/sirupsen/logrus"
"net/url"
"os"
@@ -56,11 +57,16 @@ func (mc *MetricsCollector) Run() error {
Logger: mc.logger,
Config: mc.config,
}
detectedStorageDevices, err := deviceDetector.Start()
rawDetectedStorageDevices, err := deviceDetector.Start()
if err != nil {
return err
}
//filter any device with empty wwn (they are invalid)
detectedStorageDevices := lo.Filter[models.Device](rawDetectedStorageDevices, func(dev models.Device, _ int) bool {
return len(dev.WWN) > 0
})
mc.logger.Infoln("Sending detected devices to API, for filtering & validation")
jsonObj, _ := json.Marshal(detectedStorageDevices)
mc.logger.Debugf("Detected devices: %v", string(jsonObj))