Merge pull request #50 from unifi-poller/dn2_bug

site name is wrong, fix it.
This commit is contained in:
David Newhall 2021-04-18 00:35:29 -07:00 committed by GitHub
commit 303604e1ff
11 changed files with 34 additions and 30 deletions

View File

@ -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 ./...

View File

@ -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)

View File

@ -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,

View File

@ -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"`

View File

@ -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

View File

@ -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)

View File

@ -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
)

View File

@ -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=

View File

@ -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)

View File

@ -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
}

View File

@ -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