From 406a1383b9b4829c38a236411463707e2d8cc9bd Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sun, 25 Aug 2019 16:38:29 -0700 Subject: [PATCH] Add nil checks --- core/poller/unifipoller/influx_uap.go | 3 +++ core/poller/unifipoller/influx_udm.go | 6 ++++++ core/poller/unifipoller/influx_usg.go | 3 +++ core/poller/unifipoller/influx_usw.go | 3 +++ 4 files changed, 15 insertions(+) diff --git a/core/poller/unifipoller/influx_uap.go b/core/poller/unifipoller/influx_uap.go index 2a5df71e..ea9da689 100644 --- a/core/poller/unifipoller/influx_uap.go +++ b/core/poller/unifipoller/influx_uap.go @@ -10,6 +10,9 @@ import ( // UAPPoints generates Wireless-Access-Point datapoints for InfluxDB. // These points can be passed directly to influx. func UAPPoints(u *unifi.UAP, now time.Time) ([]*influx.Point, error) { + if u.Stat.Ap == nil { + u.Stat.Ap = &unifi.Ap{} + } tags := map[string]string{ "id": u.ID, "mac": u.Mac, diff --git a/core/poller/unifipoller/influx_udm.go b/core/poller/unifipoller/influx_udm.go index c7ad73df..80492878 100644 --- a/core/poller/unifipoller/influx_udm.go +++ b/core/poller/unifipoller/influx_udm.go @@ -10,6 +10,12 @@ import ( // UDMPoints generates Unifi Gateway datapoints for InfluxDB. // These points can be passed directly to influx. func UDMPoints(u *unifi.UDM, now time.Time) ([]*influx.Point, error) { + if u.Stat.Sw == nil { + u.Stat.Sw = &unifi.Sw{} + } + if u.Stat.Gw == nil { + u.Stat.Gw = &unifi.Gw{} + } tags := map[string]string{ "id": u.ID, "mac": u.Mac, diff --git a/core/poller/unifipoller/influx_usg.go b/core/poller/unifipoller/influx_usg.go index 32a4000c..d32a1b1d 100644 --- a/core/poller/unifipoller/influx_usg.go +++ b/core/poller/unifipoller/influx_usg.go @@ -11,6 +11,9 @@ import ( // USGPoints generates Unifi Gateway datapoints for InfluxDB. // These points can be passed directly to influx. func USGPoints(u *unifi.USG, now time.Time) ([]*influx.Point, error) { + if u.Stat.Gw == nil { + u.Stat.Gw = &unifi.Gw{} + } tags := map[string]string{ "id": u.ID, "mac": u.Mac, diff --git a/core/poller/unifipoller/influx_usw.go b/core/poller/unifipoller/influx_usw.go index becd06c6..c045135a 100644 --- a/core/poller/unifipoller/influx_usw.go +++ b/core/poller/unifipoller/influx_usw.go @@ -10,6 +10,9 @@ import ( // USWPoints generates Unifi Switch datapoints for InfluxDB. // These points can be passed directly to influx. func USWPoints(u *unifi.USW, now time.Time) ([]*influx.Point, error) { + if u.Stat.Sw == nil { + u.Stat.Sw = &unifi.Sw{} + } tags := map[string]string{ "id": u.ID, "mac": u.Mac,