diff --git a/core/unifi/.travis.yml b/core/unifi/.travis.yml index b8e3b955..050bba31 100644 --- a/core/unifi/.travis.yml +++ b/core/unifi/.travis.yml @@ -1,9 +1,9 @@ language: go go: -- 1.15.x +- 1.16.x before_install: # download super-linter: golangci-lint -- curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest +- curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.38.0 script: -- golangci-lint run --enable-all -D exhaustivestruct,nlreturn +- golangci-lint run --enable-all -D exhaustivestruct,nlreturn,wrapcheck,maligned,interfacer - go test ./... diff --git a/core/unifi/alarms.go b/core/unifi/alarms.go index 863e27ca..975786b2 100644 --- a/core/unifi/alarms.go +++ b/core/unifi/alarms.go @@ -76,7 +76,7 @@ func (u *Unifi) GetAlarmsSite(site *Site) ([]*Alarm, error) { return nil, ErrNoSiteProvided } - u.DebugLog("Polling Controller for Alarms, site %s (%s)", site.Name, site.Desc) + u.DebugLog("Polling Controller for Alarms, site %s", site.SiteName) var ( path = fmt.Sprintf(APIEventPathAlarms, site.Name) @@ -93,7 +93,7 @@ func (u *Unifi) GetAlarmsSite(site *Site) ([]*Alarm, error) { // Add special SourceName value. alarms.Data[i].SourceName = u.URL // Add the special "Site Name" to each event. This becomes a Grafana filter somewhere. - alarms.Data[i].SiteName = site.Desc + " (" + site.Name + ")" + alarms.Data[i].SiteName = site.SiteName } sort.Sort(alarms.Data) diff --git a/core/unifi/anomalies.go b/core/unifi/anomalies.go index 2dfb5238..cdb66141 100644 --- a/core/unifi/anomalies.go +++ b/core/unifi/anomalies.go @@ -47,7 +47,7 @@ func (u *Unifi) GetAnomaliesSite(site *Site, timeRange ...time.Time) ([]*Anomaly return nil, ErrNoSiteProvided } - u.DebugLog("Polling Controller for Anomalies, site %s (%s)", site.Name, site.Desc) + u.DebugLog("Polling Controller for Anomalies, site %s", site.SiteName) var ( path = fmt.Sprintf(APIAnomaliesPath, site.Name) @@ -68,7 +68,7 @@ func (u *Unifi) GetAnomaliesSite(site *Site, timeRange ...time.Time) ([]*Anomaly anomalies = append(anomalies, &Anomaly{ Datetime: time.Unix(ts/int64(time.Microsecond), 0), SourceName: u.URL, - SiteName: site.Desc + " (" + site.Name + ")", + SiteName: site.SiteName, Anomaly: d.Anomaly, DeviceMAC: d.MAC, // DeviceName: d.Anomaly, diff --git a/core/unifi/clients.go b/core/unifi/clients.go index 193e502a..1e3b4ddf 100644 --- a/core/unifi/clients.go +++ b/core/unifi/clients.go @@ -14,7 +14,7 @@ func (u *Unifi) GetClients(sites []*Site) ([]*Client, error) { Data []*Client `json:"data"` } - u.DebugLog("Polling Controller, retreiving UniFi Clients, site %s (%s) ", site.Name, site.Desc) + u.DebugLog("Polling Controller, retreiving UniFi Clients, site %s ", site.SiteName) clientPath := fmt.Sprintf(APIClientPath, site.Name) if err := u.GetData(clientPath, &response); err != nil { @@ -25,7 +25,7 @@ func (u *Unifi) GetClients(sites []*Site) ([]*Client, error) { // Add special SourceName value. response.Data[i].SourceName = u.URL // Add the special "Site Name" to each client. This becomes a Grafana filter somewhere. - response.Data[i].SiteName = site.Desc + " (" + site.Name + ")" + response.Data[i].SiteName = site.SiteName // Fix name and hostname fields. Sometimes one or the other is blank. response.Data[i].Hostname = strings.TrimSpace(pick(d.Hostname, d.Name, d.Mac)) response.Data[i].Name = strings.TrimSpace(pick(d.Name, d.Hostname)) @@ -42,7 +42,7 @@ func (u *Unifi) GetClientsDPI(sites []*Site) ([]*DPITable, error) { var data []*DPITable for _, site := range sites { - u.DebugLog("Polling Controller, retreiving Client DPI data, site %s (%s) ", site.Name, site.Desc) + u.DebugLog("Polling Controller, retreiving Client DPI data, site %s", site.SiteName) var response struct { Data []*DPITable `json:"data"` diff --git a/core/unifi/devices.go b/core/unifi/devices.go index 35003694..885a1844 100644 --- a/core/unifi/devices.go +++ b/core/unifi/devices.go @@ -45,7 +45,7 @@ func (u *Unifi) GetUSWs(site *Site) ([]*USW, error) { return u.parseDevices(response.Data, site).USWs, nil } -// GetUSWs returns all access points, an error, or nil if there are no APs. +// GetUAPs returns all access points, an error, or nil if there are no APs. func (u *Unifi) GetUAPs(site *Site) ([]*UAP, error) { var response struct { Data []json.RawMessage `json:"data"` @@ -59,7 +59,7 @@ func (u *Unifi) GetUAPs(site *Site) ([]*UAP, error) { return u.parseDevices(response.Data, site).UAPs, nil } -// GetUSWs returns all dream machines, an error, or nil if there are no UDMs. +// GetUDMs returns all dream machines, an error, or nil if there are no UDMs. func (u *Unifi) GetUDMs(site *Site) ([]*UDM, error) { var response struct { Data []json.RawMessage `json:"data"` @@ -73,7 +73,7 @@ func (u *Unifi) GetUDMs(site *Site) ([]*UDM, error) { return u.parseDevices(response.Data, site).UDMs, nil } -// GetUSWs returns all 10Gb gateways, an error, or nil if there are no UXGs. +// GetUXGs returns all 10Gb gateways, an error, or nil if there are no UXGs. func (u *Unifi) GetUXGs(site *Site) ([]*UXG, error) { var response struct { Data []json.RawMessage `json:"data"` @@ -87,7 +87,7 @@ func (u *Unifi) GetUXGs(site *Site) ([]*UXG, error) { return u.parseDevices(response.Data, site).UXGs, nil } -// GetUSWs returns all 1Gb gateways, an error, or nil if there are no USGs. +// GetUSGs returns all 1Gb gateways, an error, or nil if there are no USGs. func (u *Unifi) GetUSGs(site *Site) ([]*USG, error) { var response struct { Data []json.RawMessage `json:"data"` @@ -114,7 +114,7 @@ func (u *Unifi) parseDevices(data []json.RawMessage, site *Site) *Devices { } assetType, _ := o["type"].(string) - u.DebugLog("Unmarshalling Device Type: %v, site %s ", assetType, site.Name) + u.DebugLog("Unmarshalling Device Type: %v, site %s ", assetType, site.SiteName) // Choose which type to unmarshal into based on the "type" json key. switch assetType { // Unmarshal again into the correct type.. @@ -137,7 +137,7 @@ func (u *Unifi) parseDevices(data []json.RawMessage, site *Site) *Devices { } func (u *Unifi) unmarshallUAP(site *Site, payload json.RawMessage, devices *Devices) { - dev := &UAP{SiteName: site.Name, SourceName: u.URL} + dev := &UAP{SiteName: site.SiteName, SourceName: u.URL} if u.unmarshalDevice("uap", payload, dev) == nil { dev.Name = strings.TrimSpace(pick(dev.Name, dev.Mac)) dev.site = site @@ -146,7 +146,7 @@ func (u *Unifi) unmarshallUAP(site *Site, payload json.RawMessage, devices *Devi } func (u *Unifi) unmarshallUSG(site *Site, payload json.RawMessage, devices *Devices) { - dev := &USG{SiteName: site.Name, SourceName: u.URL} + dev := &USG{SiteName: site.SiteName, SourceName: u.URL} if u.unmarshalDevice("ugw", payload, dev) == nil { dev.Name = strings.TrimSpace(pick(dev.Name, dev.Mac)) dev.site = site @@ -155,7 +155,7 @@ func (u *Unifi) unmarshallUSG(site *Site, payload json.RawMessage, devices *Devi } func (u *Unifi) unmarshallUSW(site *Site, payload json.RawMessage, devices *Devices) { - dev := &USW{SiteName: site.Name, SourceName: u.URL} + dev := &USW{SiteName: site.SiteName, SourceName: u.URL} if u.unmarshalDevice("usw", payload, dev) == nil { dev.Name = strings.TrimSpace(pick(dev.Name, dev.Mac)) dev.site = site @@ -164,7 +164,7 @@ func (u *Unifi) unmarshallUSW(site *Site, payload json.RawMessage, devices *Devi } func (u *Unifi) unmarshallUXG(site *Site, payload json.RawMessage, devices *Devices) { - dev := &UXG{SiteName: site.Name, SourceName: u.URL} + dev := &UXG{SiteName: site.SiteName, SourceName: u.URL} if u.unmarshalDevice("uxg", payload, dev) == nil { dev.Name = strings.TrimSpace(pick(dev.Name, dev.Mac)) dev.site = site @@ -173,7 +173,7 @@ func (u *Unifi) unmarshallUXG(site *Site, payload json.RawMessage, devices *Devi } func (u *Unifi) unmarshallUDM(site *Site, payload json.RawMessage, devices *Devices) { - dev := &UDM{SiteName: site.Name, SourceName: u.URL} + dev := &UDM{SiteName: site.SiteName, SourceName: u.URL} if u.unmarshalDevice("udm", payload, dev) == nil { dev.Name = strings.TrimSpace(pick(dev.Name, dev.Mac)) dev.site = site diff --git a/core/unifi/events.go b/core/unifi/events.go index d43cf4f9..4340c670 100644 --- a/core/unifi/events.go +++ b/core/unifi/events.go @@ -42,7 +42,7 @@ func (u *Unifi) GetSiteEvents(site *Site, hours time.Duration) ([]*Event, error) hours = time.Hour } - u.DebugLog("Polling Controller, retreiving UniFi Events, site %s (%s)", site.Name, site.Desc) + u.DebugLog("Polling Controller, retreiving UniFi Events, site %s", site.SiteName) var ( path = fmt.Sprintf(APIEventPath, site.Name) @@ -61,7 +61,7 @@ func (u *Unifi) GetSiteEvents(site *Site, hours time.Duration) ([]*Event, error) // Add special SourceName value. event.Data[i].SourceName = u.URL // Add the special "Site Name" to each event. This becomes a Grafana filter somewhere. - event.Data[i].SiteName = site.Desc + " (" + site.Name + ")" + event.Data[i].SiteName = site.SiteName } sort.Sort(event.Data) diff --git a/core/unifi/go.mod b/core/unifi/go.mod index 9aade56e..d19a14e5 100644 --- a/core/unifi/go.mod +++ b/core/unifi/go.mod @@ -1,10 +1,10 @@ module github.com/unifi-poller/unifi -go 1.15 +go 1.16 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/stretchr/testify v1.4.0 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect - golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 + golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d ) diff --git a/core/unifi/go.sum b/core/unifi/go.sum index d2c30146..fcb0415e 100644 --- a/core/unifi/go.sum +++ b/core/unifi/go.sum @@ -15,13 +15,17 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrS golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d h1:BgJvlyh+UqCUaPlscHJ+PN8GcpfrFdr7NHjd1JL0+Gs= +golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/core/unifi/ids.go b/core/unifi/ids.go index c290cbe2..2898506d 100644 --- a/core/unifi/ids.go +++ b/core/unifi/ids.go @@ -79,7 +79,7 @@ func (u *Unifi) GetIDSSite(site *Site, timeRange ...time.Time) ([]*IDS, error) { return nil, ErrNoSiteProvided } - u.DebugLog("Polling Controller for IDS Events, site %s (%s)", site.Name, site.Desc) + u.DebugLog("Polling Controller for IDS Events, site %s", site.SiteName) var ( path = fmt.Sprintf(APIEventPathIDS, site.Name) @@ -98,7 +98,7 @@ func (u *Unifi) GetIDSSite(site *Site, timeRange ...time.Time) ([]*IDS, error) { // Add special SourceName value. ids.Data[i].SourceName = u.URL // Add the special "Site Name" to each event. This becomes a Grafana filter somewhere. - ids.Data[i].SiteName = site.Desc + " (" + site.Name + ")" + ids.Data[i].SiteName = site.SiteName } sort.Sort(ids.Data) diff --git a/core/unifi/site.go b/core/unifi/site.go index 25030bfa..4534a689 100644 --- a/core/unifi/site.go +++ b/core/unifi/site.go @@ -41,7 +41,7 @@ func (u *Unifi) GetSiteDPI(sites []*Site) ([]*DPITable, error) { data := []*DPITable{} for _, site := range sites { - u.DebugLog("Polling Controller, retreiving Site DPI data, site %s (%s) ", site.Name, site.Desc) + u.DebugLog("Polling Controller, retreiving Site DPI data, site %s", site.SiteName) var response struct { Data []*DPITable `json:"data"` @@ -55,7 +55,7 @@ func (u *Unifi) GetSiteDPI(sites []*Site) ([]*DPITable, error) { if l := len(response.Data); l > 1 { return nil, ErrDPIDataBug } else if l == 0 { - u.DebugLog("Site DPI data missing! Is DPI enabled in UniFi controller? Site %s (%s) ", site.Name, site.Desc) + u.DebugLog("Site DPI data missing! Is DPI enabled in UniFi controller? Site %s", site.SiteName) continue } diff --git a/core/unifi/uap.go b/core/unifi/uap.go index dca0dfbb..9418c1cb 100644 --- a/core/unifi/uap.go +++ b/core/unifi/uap.go @@ -604,7 +604,7 @@ func (u *Unifi) GetRogueAPsSite(site *Site) ([]*RogueAP, error) { return nil, ErrNoSiteProvided } - u.DebugLog("Polling Controller for RogueAPs, site %s (%s)", site.Name, site.Desc) + u.DebugLog("Polling Controller for RogueAPs, site %s (%s)", site.SiteName, site.Desc) var ( path = fmt.Sprintf(APIRogueAP, site.Name) @@ -621,7 +621,7 @@ func (u *Unifi) GetRogueAPsSite(site *Site) ([]*RogueAP, error) { // Add special SourceName value. rogueaps.Data[i].SourceName = u.URL // Add the special "Site Name" to each event. This becomes a Grafana filter somewhere. - rogueaps.Data[i].SiteName = site.Desc + " (" + site.Name + ")" + rogueaps.Data[i].SiteName = site.SiteName } return rogueaps.Data, nil