fix nil pointer
This commit is contained in:
parent
8aa071935e
commit
d47b569a49
|
|
@ -128,7 +128,9 @@ func (u *UnifiPoller) PollController() {
|
||||||
for u.LastCheck = range ticker.C {
|
for u.LastCheck = range ticker.C {
|
||||||
if err := u.CollectAndProcess(); err != nil {
|
if err := u.CollectAndProcess(); err != nil {
|
||||||
u.LogErrorf("%v", err)
|
u.LogErrorf("%v", err)
|
||||||
u.Unifi.CloseIdleConnections()
|
if u.Unifi != nil {
|
||||||
|
u.Unifi.CloseIdleConnections()
|
||||||
|
}
|
||||||
u.Unifi = nil // trigger re-auth in unifi.go.
|
u.Unifi = nil // trigger re-auth in unifi.go.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,31 +69,37 @@ FIRST:
|
||||||
|
|
||||||
// CollectMetrics grabs all the measurements from a UniFi controller and returns them.
|
// CollectMetrics grabs all the measurements from a UniFi controller and returns them.
|
||||||
func (u *UnifiPoller) CollectMetrics() (*metrics.Metrics, error) {
|
func (u *UnifiPoller) CollectMetrics() (*metrics.Metrics, error) {
|
||||||
|
var err error
|
||||||
|
|
||||||
if u.Unifi == nil || u.Config.ReAuth {
|
if u.Unifi == nil || u.Config.ReAuth {
|
||||||
// Some users need to re-auth every interval because the cookie times out.
|
// Some users need to re-auth every interval because the cookie times out.
|
||||||
// Sometimes we hit this path when the controller dies.
|
// Sometimes we hit this path when the controller dies.
|
||||||
u.LogDebugf("Re-authenticating to UniFi Controller")
|
u.Logf("Re-authenticating to UniFi Controller")
|
||||||
if err := u.GetUnifi(); err != nil {
|
if err := u.GetUnifi(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m := &metrics.Metrics{TS: u.LastCheck} // At this point, it's the Current Check.
|
m := &metrics.Metrics{TS: u.LastCheck} // At this point, it's the Current Check.
|
||||||
var err error
|
|
||||||
// Get the sites we care about.
|
// Get the sites we care about.
|
||||||
if m.Sites, err = u.GetFilteredSites(); err != nil {
|
if m.Sites, err = u.GetFilteredSites(); err != nil {
|
||||||
return m, fmt.Errorf("unifi.GetSites(): %v", err)
|
return m, fmt.Errorf("unifi.GetSites(): %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if u.Config.SaveIDS {
|
if u.Config.SaveIDS {
|
||||||
m.IDSList, err = u.Unifi.GetIDS(m.Sites, time.Now().Add(u.Config.Interval.Duration), time.Now())
|
m.IDSList, err = u.Unifi.GetIDS(m.Sites, time.Now().Add(u.Config.Interval.Duration), time.Now())
|
||||||
return m, fmt.Errorf("unifi.GetIDS(): %v", err)
|
return m, fmt.Errorf("unifi.GetIDS(): %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all the points.
|
// Get all the points.
|
||||||
if m.Clients, err = u.Unifi.GetClients(m.Sites); err != nil {
|
if m.Clients, err = u.Unifi.GetClients(m.Sites); err != nil {
|
||||||
return m, fmt.Errorf("unifi.GetClients(): %v", err)
|
return m, fmt.Errorf("unifi.GetClients(): %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.Devices, err = u.Unifi.GetDevices(m.Sites); err != nil {
|
if m.Devices, err = u.Unifi.GetDevices(m.Sites); err != nil {
|
||||||
return m, fmt.Errorf("unifi.GetDevices(): %v", err)
|
return m, fmt.Errorf("unifi.GetDevices(): %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue