Skip to content

Commit

Permalink
Refactor collectors to make them conistant with each other
Browse files Browse the repository at this point in the history
  • Loading branch information
nocturnalastro committed Jul 3, 2023
1 parent 261feb2 commit 865e687
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 28 deletions.
12 changes: 8 additions & 4 deletions pkg/collectors/dev_info_collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ func (ptpDev *DevInfoCollector) monitorErroredPolls() {
}

// polls for the device info, stores it then passes it to the callback
func (ptpDev *DevInfoCollector) poll() []error {
func (ptpDev *DevInfoCollector) poll() error {
var devInfo *devices.PTPDeviceInfo
select {
case <-ptpDev.requiresFetch:
fetchedDevInfo, err := devices.GetPTPDeviceInfo(ptpDev.interfaceName, ptpDev.ctx)
if err != nil {
return []error{fmt.Errorf("failed to fetch DeviceInfo %w", err)}
return fmt.Errorf("failed to fetch %s %w", DeviceInfo, err)
}
ptpDev.devInfo = &fetchedDevInfo
devInfo = &fetchedDevInfo
Expand All @@ -96,7 +96,7 @@ func (ptpDev *DevInfoCollector) poll() []error {

err := ptpDev.callback.Call(devInfo, DeviceInfo)
if err != nil {
return []error{fmt.Errorf("callback failed %w", err)}
return fmt.Errorf("callback failed %w", err)
}
return nil
}
Expand All @@ -108,7 +108,11 @@ func (ptpDev *DevInfoCollector) Poll(resultsChan chan PollResult, wg *utils.Wait
wg.Done()
atomic.AddUint32(&ptpDev.count, 1)
}()
errorsToReturn := ptpDev.poll()
errorsToReturn := make([]error, 0)
err := ptpDev.poll()
if err != nil {
errorsToReturn = append(errorsToReturn, err)
}
resultsChan <- PollResult{
CollectorName: DPLLCollectorName,
Errors: errorsToReturn,
Expand Down
16 changes: 9 additions & 7 deletions pkg/collectors/dpll_collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ type DPLLCollector struct {

const (
DPLLCollectorName = "DPLL"

DPLLInfo = "dpll-info"
All = "all"
DPLLInfo = "dpll-info"
)

func (dpll *DPLLCollector) GetPollInterval() int {
Expand All @@ -43,15 +41,15 @@ func (dpll *DPLLCollector) Start() error {
}

// polls for the dpll info then passes it to the callback
func (dpll *DPLLCollector) poll() []error {
func (dpll *DPLLCollector) poll() error {
dpllInfo, err := devices.GetDevDPLLInfo(dpll.ctx, dpll.interfaceName)

if err != nil {
return []error{fmt.Errorf("failed to fetch dpllInfo %w", err)}
return fmt.Errorf("failed to fetch %s %w", DPLLInfo, err)
}
err = dpll.callback.Call(&dpllInfo, DPLLInfo)
if err != nil {
return []error{fmt.Errorf("callback failed %w", err)}
return fmt.Errorf("callback failed %w", err)
}
return nil
}
Expand All @@ -63,7 +61,11 @@ func (dpll *DPLLCollector) Poll(resultsChan chan PollResult, wg *utils.WaitGroup
wg.Done()
atomic.AddUint32(&dpll.count, 1)
}()
errorsToReturn := dpll.poll()
errorsToReturn := make([]error, 0)
err := dpll.poll()
if err != nil {
errorsToReturn = append(errorsToReturn, err)
}
resultsChan <- PollResult{
CollectorName: DPLLCollectorName,
Errors: errorsToReturn,
Expand Down
33 changes: 16 additions & 17 deletions pkg/collectors/gps_ubx_collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,18 @@ func (gps *GPSCollector) Start() error {
return nil
}

func (gps *GPSCollector) poll() error {
gpsNav, err := devices.GetGPSNav(gps.ctx)
if err != nil {
return fmt.Errorf("failed to fetch %s %w", gpsNavKey, err)
}
err = gps.callback.Call(&gpsNav, gpsNavKey)
if err != nil {
return fmt.Errorf("callback failed %w", err)
}
return nil
}

// Poll collects information from the cluster then
// calls the callback.Call to allow that to persist it
func (gps *GPSCollector) Poll(resultsChan chan PollResult, wg *utils.WaitGroupCount) {
Expand All @@ -49,27 +61,14 @@ func (gps *GPSCollector) Poll(resultsChan chan PollResult, wg *utils.WaitGroupCo
atomic.AddUint32(&gps.count, 1)
}()

gpsNav, err := devices.GetGPSNav(gps.ctx)
errorsToReturn := make([]error, 0)
err := gps.poll()
if err != nil {
resultsChan <- PollResult{
CollectorName: GPSCollectorName,
Errors: []error{err},
}
return
errorsToReturn = append(errorsToReturn, err)
}
err = gps.callback.Call(&gpsNav, gpsNavKey)

if err != nil {
resultsChan <- PollResult{
CollectorName: GPSCollectorName,
Errors: []error{err},
}
return
}

resultsChan <- PollResult{
CollectorName: GPSCollectorName,
Errors: []error{},
Errors: errorsToReturn,
}
}

Expand Down

0 comments on commit 865e687

Please sign in to comment.