a litle lint
This commit is contained in:
		
							parent
							
								
									d47b569a49
								
							
						
					
					
						commit
						539723ece1
					
				| 
						 | 
					@ -12,6 +12,7 @@ func (u *UnifiPoller) GetInfluxDB() (err error) {
 | 
				
			||||||
	if u.Influx != nil {
 | 
						if u.Influx != nil {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.Influx, err = influxunifi.New(&influxunifi.Config{
 | 
						u.Influx, err = influxunifi.New(&influxunifi.Config{
 | 
				
			||||||
		Database: u.Config.InfluxDB,
 | 
							Database: u.Config.InfluxDB,
 | 
				
			||||||
		User:     u.Config.InfluxUser,
 | 
							User:     u.Config.InfluxUser,
 | 
				
			||||||
| 
						 | 
					@ -22,7 +23,9 @@ func (u *UnifiPoller) GetInfluxDB() (err error) {
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("influxdb: %v", err)
 | 
							return fmt.Errorf("influxdb: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.Logf("Logging Measurements to InfluxDB at %s as user %s", u.Config.InfluxURL, u.Config.InfluxUser)
 | 
						u.Logf("Logging Measurements to InfluxDB at %s as user %s", u.Config.InfluxURL, u.Config.InfluxUser)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,6 +43,7 @@ func (u *UnifiPoller) CollectAndProcess() error {
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.AugmentMetrics(metrics)
 | 
						u.AugmentMetrics(metrics)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	report, err := u.Influx.ReportMetrics(metrics)
 | 
						report, err := u.Influx.ReportMetrics(metrics)
 | 
				
			||||||
| 
						 | 
					@ -54,9 +58,11 @@ func (u *UnifiPoller) CollectAndProcess() error {
 | 
				
			||||||
// LogInfluxReport writes a log message after exporting to influxdb.
 | 
					// LogInfluxReport writes a log message after exporting to influxdb.
 | 
				
			||||||
func (u *UnifiPoller) LogInfluxReport(r *influxunifi.Report) {
 | 
					func (u *UnifiPoller) LogInfluxReport(r *influxunifi.Report) {
 | 
				
			||||||
	idsMsg := ""
 | 
						idsMsg := ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if u.Config.SaveIDS {
 | 
						if u.Config.SaveIDS {
 | 
				
			||||||
		idsMsg = fmt.Sprintf("IDS Events: %d, ", len(r.Metrics.IDSList))
 | 
							idsMsg = fmt.Sprintf("IDS Events: %d, ", len(r.Metrics.IDSList))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.Logf("UniFi Metrics Recorded. Sites: %d, Clients: %d, "+
 | 
						u.Logf("UniFi Metrics Recorded. Sites: %d, Clients: %d, "+
 | 
				
			||||||
		"UAP: %d, USG/UDM: %d, USW: %d, %sPoints: %d, Fields: %d, Errs: %d, Elapsed: %v",
 | 
							"UAP: %d, USG/UDM: %d, USW: %d, %sPoints: %d, Fields: %d, Errs: %d, Elapsed: %v",
 | 
				
			||||||
		len(r.Metrics.Sites), len(r.Metrics.Clients), len(r.Metrics.UAPs),
 | 
							len(r.Metrics.Sites), len(r.Metrics.Clients), len(r.Metrics.UAPs),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,7 @@ func (u *UnifiPoller) RunPrometheus() error {
 | 
				
			||||||
		LoggingFn:    u.LogExportReport,
 | 
							LoggingFn:    u.LogExportReport,
 | 
				
			||||||
		ReportErrors: true, // XXX: Does this need to be configurable?
 | 
							ReportErrors: true, // XXX: Does this need to be configurable?
 | 
				
			||||||
	}))
 | 
						}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return http.ListenAndServe(u.Config.HTTPListen, nil)
 | 
						return http.ListenAndServe(u.Config.HTTPListen, nil)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,14 +124,16 @@ func (u *UnifiPoller) Run() error {
 | 
				
			||||||
func (u *UnifiPoller) PollController() {
 | 
					func (u *UnifiPoller) PollController() {
 | 
				
			||||||
	interval := u.Config.Interval.Round(time.Second)
 | 
						interval := u.Config.Interval.Round(time.Second)
 | 
				
			||||||
	log.Printf("[INFO] Everything checks out! Poller started, InfluxDB interval: %v", interval)
 | 
						log.Printf("[INFO] Everything checks out! Poller started, InfluxDB interval: %v", interval)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ticker := time.NewTicker(interval)
 | 
						ticker := time.NewTicker(interval)
 | 
				
			||||||
	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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if u.Unifi != nil {
 | 
								if u.Unifi != nil {
 | 
				
			||||||
				u.Unifi.CloseIdleConnections()
 | 
									u.Unifi.CloseIdleConnections()
 | 
				
			||||||
 | 
									u.Unifi = nil // trigger re-auth in unifi.go.
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			u.Unifi = nil // trigger re-auth in unifi.go.
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,9 +13,11 @@ import (
 | 
				
			||||||
func (u *UnifiPoller) GetUnifi() (err error) {
 | 
					func (u *UnifiPoller) GetUnifi() (err error) {
 | 
				
			||||||
	u.Lock()
 | 
						u.Lock()
 | 
				
			||||||
	defer u.Unlock()
 | 
						defer u.Unlock()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if u.Unifi != nil {
 | 
						if u.Unifi != nil {
 | 
				
			||||||
		u.Unifi.CloseIdleConnections()
 | 
							u.Unifi.CloseIdleConnections()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create an authenticated session to the Unifi Controller.
 | 
						// Create an authenticated session to the Unifi Controller.
 | 
				
			||||||
	u.Unifi, err = unifi.NewUnifi(&unifi.Config{
 | 
						u.Unifi, err = unifi.NewUnifi(&unifi.Config{
 | 
				
			||||||
		User:      u.Config.UnifiUser,
 | 
							User:      u.Config.UnifiUser,
 | 
				
			||||||
| 
						 | 
					@ -29,6 +31,7 @@ func (u *UnifiPoller) GetUnifi() (err error) {
 | 
				
			||||||
		u.Unifi = nil
 | 
							u.Unifi = nil
 | 
				
			||||||
		return fmt.Errorf("unifi controller: %v", err)
 | 
							return fmt.Errorf("unifi controller: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.LogDebugf("Authenticated with controller successfully")
 | 
						u.LogDebugf("Authenticated with controller successfully")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return u.CheckSites()
 | 
						return u.CheckSites()
 | 
				
			||||||
| 
						 | 
					@ -40,20 +43,26 @@ func (u *UnifiPoller) CheckSites() error {
 | 
				
			||||||
	if strings.Contains(strings.ToLower(u.Config.Mode), "lambda") {
 | 
						if strings.Contains(strings.ToLower(u.Config.Mode), "lambda") {
 | 
				
			||||||
		return nil // Skip this in lambda mode.
 | 
							return nil // Skip this in lambda mode.
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u.LogDebugf("Checking Controller Sites List")
 | 
						u.LogDebugf("Checking Controller Sites List")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sites, err := u.Unifi.GetSites()
 | 
						sites, err := u.Unifi.GetSites()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msg := []string{}
 | 
						msg := []string{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, site := range sites {
 | 
						for _, site := range sites {
 | 
				
			||||||
		msg = append(msg, site.Name+" ("+site.Desc+")")
 | 
							msg = append(msg, site.Name+" ("+site.Desc+")")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	u.Logf("Found %d site(s) on controller: %v", len(msg), strings.Join(msg, ", "))
 | 
						u.Logf("Found %d site(s) on controller: %v", len(msg), strings.Join(msg, ", "))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if StringInSlice("all", u.Config.Sites) {
 | 
						if StringInSlice("all", u.Config.Sites) {
 | 
				
			||||||
		u.Config.Sites = []string{"all"}
 | 
							u.Config.Sites = []string{"all"}
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FIRST:
 | 
					FIRST:
 | 
				
			||||||
	for _, s := range u.Config.Sites {
 | 
						for _, s := range u.Config.Sites {
 | 
				
			||||||
		for _, site := range sites {
 | 
							for _, site := range sites {
 | 
				
			||||||
| 
						 | 
					@ -64,6 +73,7 @@ FIRST:
 | 
				
			||||||
		// This is fine, it may get added later.
 | 
							// This is fine, it may get added later.
 | 
				
			||||||
		u.LogErrorf("configured site not found on controller: %v", s)
 | 
							u.LogErrorf("configured site not found on controller: %v", s)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,23 +120,29 @@ func (u *UnifiPoller) AugmentMetrics(metrics *metrics.Metrics) {
 | 
				
			||||||
	if metrics == nil || metrics.Devices == nil || metrics.Clients == nil {
 | 
						if metrics == nil || metrics.Devices == nil || metrics.Clients == nil {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	devices := make(map[string]string)
 | 
						devices := make(map[string]string)
 | 
				
			||||||
	bssdIDs := make(map[string]string)
 | 
						bssdIDs := make(map[string]string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, r := range metrics.UAPs {
 | 
						for _, r := range metrics.UAPs {
 | 
				
			||||||
		devices[r.Mac] = r.Name
 | 
							devices[r.Mac] = r.Name
 | 
				
			||||||
		for _, v := range r.VapTable {
 | 
							for _, v := range r.VapTable {
 | 
				
			||||||
			bssdIDs[v.Bssid] = fmt.Sprintf("%s %s %s:", r.Name, v.Radio, v.RadioName)
 | 
								bssdIDs[v.Bssid] = fmt.Sprintf("%s %s %s:", r.Name, v.Radio, v.RadioName)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, r := range metrics.USGs {
 | 
						for _, r := range metrics.USGs {
 | 
				
			||||||
		devices[r.Mac] = r.Name
 | 
							devices[r.Mac] = r.Name
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, r := range metrics.USWs {
 | 
						for _, r := range metrics.USWs {
 | 
				
			||||||
		devices[r.Mac] = r.Name
 | 
							devices[r.Mac] = r.Name
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, r := range metrics.UDMs {
 | 
						for _, r := range metrics.UDMs {
 | 
				
			||||||
		devices[r.Mac] = r.Name
 | 
							devices[r.Mac] = r.Name
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// These come blank, so set them here.
 | 
						// These come blank, so set them here.
 | 
				
			||||||
	for i, c := range metrics.Clients {
 | 
						for i, c := range metrics.Clients {
 | 
				
			||||||
		metrics.Clients[i].SwName = devices[c.SwMac]
 | 
							metrics.Clients[i].SwName = devices[c.SwMac]
 | 
				
			||||||
| 
						 | 
					@ -134,6 +150,7 @@ func (u *UnifiPoller) AugmentMetrics(metrics *metrics.Metrics) {
 | 
				
			||||||
		metrics.Clients[i].GwName = devices[c.GwMac]
 | 
							metrics.Clients[i].GwName = devices[c.GwMac]
 | 
				
			||||||
		metrics.Clients[i].RadioDescription = bssdIDs[metrics.Clients[i].Bssid] + metrics.Clients[i].RadioProto
 | 
							metrics.Clients[i].RadioDescription = bssdIDs[metrics.Clients[i].Bssid] + metrics.Clients[i].RadioProto
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !u.Config.SaveSites {
 | 
						if !u.Config.SaveSites {
 | 
				
			||||||
		metrics.Sites = nil
 | 
							metrics.Sites = nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -143,13 +160,15 @@ func (u *UnifiPoller) AugmentMetrics(metrics *metrics.Metrics) {
 | 
				
			||||||
// Omits requested but unconfigured sites. Grabs the full list from the
 | 
					// Omits requested but unconfigured sites. Grabs the full list from the
 | 
				
			||||||
// controller and returns the sites provided in the config file.
 | 
					// controller and returns the sites provided in the config file.
 | 
				
			||||||
func (u *UnifiPoller) GetFilteredSites() (unifi.Sites, error) {
 | 
					func (u *UnifiPoller) GetFilteredSites() (unifi.Sites, error) {
 | 
				
			||||||
 | 
						var i int
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sites, err := u.Unifi.GetSites()
 | 
						sites, err := u.Unifi.GetSites()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	} else if len(u.Config.Sites) < 1 || StringInSlice("all", u.Config.Sites) {
 | 
						} else if len(u.Config.Sites) < 1 || StringInSlice("all", u.Config.Sites) {
 | 
				
			||||||
		return sites, nil
 | 
							return sites, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var i int
 | 
					
 | 
				
			||||||
	for _, s := range sites {
 | 
						for _, s := range sites {
 | 
				
			||||||
		// Only include valid sites in the request filter.
 | 
							// Only include valid sites in the request filter.
 | 
				
			||||||
		if StringInSlice(s.Name, u.Config.Sites) {
 | 
							if StringInSlice(s.Name, u.Config.Sites) {
 | 
				
			||||||
| 
						 | 
					@ -157,5 +176,6 @@ func (u *UnifiPoller) GetFilteredSites() (unifi.Sites, error) {
 | 
				
			||||||
			i++
 | 
								i++
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return sites[:i], nil
 | 
						return sites[:i], nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue