[TASK] make all struct with omitempty to ref

This commit is contained in:
Martin Geno 2017-03-16 23:30:55 +01:00
parent 3973e17b9b
commit 031efd69ac
No known key found for this signature in database
GPG Key ID: F0D39A37E925E941
9 changed files with 62 additions and 37 deletions

View File

@ -50,23 +50,23 @@ type Location struct {
// Software struct
type Software struct {
Autoupdater struct {
Autoupdater *struct {
Enabled bool `json:"enabled,omitempty"`
Branch string `json:"branch,omitempty"`
} `json:"autoupdater,omitempty"`
BatmanAdv struct {
BatmanAdv *struct {
Version string `json:"version,omitempty"`
Compat int `json:"compat,omitempty"`
} `json:"batman-adv,omitempty"`
Fastd struct {
Fastd *struct {
Enabled bool `json:"enabled,omitempty"`
Version string `json:"version,omitempty"`
} `json:"fastd,omitempty"`
Firmware struct {
Firmware *struct {
Base string `json:"base,omitempty"`
Release string `json:"release,omitempty"`
} `json:"firmware,omitempty"`
StatusPage struct {
StatusPage *struct {
API int `json:"api"`
} `json:"status-page,omitempty"`
}

View File

@ -22,7 +22,7 @@ type Statistics struct {
Running uint32 `json:"running"`
} `json:"processes,omitempty"`
MeshVPN *MeshVPN `json:"mesh_vpn,omitempty"`
Traffic struct {
Traffic *struct {
Tx *Traffic `json:"tx"`
Rx *Traffic `json:"rx"`
Forward *Traffic `json:"forward"`

View File

@ -24,7 +24,7 @@ func createTestNodes() *runtime.Nodes {
nodeData := &data.ResponseData{
Statistics: &data.Statistics{
Clients: data.Clients{
Clients: &data.Clients{
Total: 23,
},
},
@ -32,6 +32,12 @@ func createTestNodes() *runtime.Nodes {
Hardware: data.Hardware{
Model: "TP-Link 841",
},
Software: data.Software{
Firmware: &struct {
Base string `json:"base,omitempty"`
Release string `json:"release,omitempty"`
}{},
},
},
}
nodeData.NodeInfo.Software.Firmware.Release = "2016.1.6+entenhausen1"
@ -39,7 +45,7 @@ func createTestNodes() *runtime.Nodes {
nodes.Update("112233445566", &data.ResponseData{
Statistics: &data.Statistics{
Clients: data.Clients{
Clients: &data.Clients{
Total: 2,
},
},

View File

@ -63,8 +63,10 @@ func buildNodeStats(node *runtime.Node) (tags models.Tags, fields models.Fields)
}
// Hardware
tags.SetString("model", nodeinfo.Hardware.Model)
tags.SetString("firmware_base", nodeinfo.Software.Firmware.Base)
tags.SetString("firmware_release", nodeinfo.Software.Firmware.Release)
if firmware := nodeinfo.Software.Firmware; firmware != nil {
tags.SetString("firmware_base", firmware.Base)
tags.SetString("firmware_release", firmware.Release)
}
}
@ -99,27 +101,28 @@ func buildNodeStats(node *runtime.Node) (tags models.Tags, fields models.Fields)
// total is the sum of all protocols
fields["neighbours.total"] = batadv + lldp
}
if t := stats.Traffic.Rx; t != nil {
fields["traffic.rx.bytes"] = int64(t.Bytes)
fields["traffic.rx.packets"] = t.Packets
}
if t := stats.Traffic.Tx; t != nil {
fields["traffic.tx.bytes"] = int64(t.Bytes)
fields["traffic.tx.packets"] = t.Packets
fields["traffic.tx.dropped"] = t.Dropped
}
if t := stats.Traffic.Forward; t != nil {
fields["traffic.forward.bytes"] = int64(t.Bytes)
fields["traffic.forward.packets"] = t.Packets
}
if t := stats.Traffic.MgmtRx; t != nil {
fields["traffic.mgmt_rx.bytes"] = int64(t.Bytes)
fields["traffic.mgmt_rx.packets"] = t.Packets
}
if t := stats.Traffic.MgmtTx; t != nil {
fields["traffic.mgmt_tx.bytes"] = int64(t.Bytes)
fields["traffic.mgmt_tx.packets"] = t.Packets
if tr := stats.Traffic; tr != nil {
if t := tr.Rx; t != nil {
fields["traffic.rx.bytes"] = int64(t.Bytes)
fields["traffic.rx.packets"] = t.Packets
}
if t := tr.Tx; t != nil {
fields["traffic.tx.bytes"] = int64(t.Bytes)
fields["traffic.tx.packets"] = t.Packets
fields["traffic.tx.dropped"] = t.Dropped
}
if t := tr.Forward; t != nil {
fields["traffic.forward.bytes"] = int64(t.Bytes)
fields["traffic.forward.packets"] = t.Packets
}
if t := tr.MgmtRx; t != nil {
fields["traffic.mgmt_rx.bytes"] = int64(t.Bytes)
fields["traffic.mgmt_rx.packets"] = t.Packets
}
if t := tr.MgmtTx; t != nil {
fields["traffic.mgmt_tx.bytes"] = int64(t.Bytes)
fields["traffic.mgmt_tx.packets"] = t.Packets
}
}
for _, airtime := range stats.Wireless {

View File

@ -19,7 +19,7 @@ func TestToInflux(t *testing.T) {
Wireless: data.WirelessStatistics{
&data.WirelessAirtime{Frequency: 5500},
},
Traffic: struct {
Traffic: &struct {
Tx *data.Traffic `json:"tx"`
Rx *data.Traffic `json:"rx"`
Forward *data.Traffic `json:"forward"`

View File

@ -37,7 +37,7 @@ type Statistics struct {
Running uint32 `json:"running"`
} `json:"processes,omitempty"`
MeshVPN *data.MeshVPN `json:"mesh_vpn,omitempty"`
Traffic struct {
Traffic *struct {
Tx *data.Traffic `json:"tx"`
Rx *data.Traffic `json:"rx"`
Forward *data.Traffic `json:"forward"`

View File

@ -27,7 +27,7 @@ func createTestNodes() *runtime.Nodes {
nodeData := &data.ResponseData{
Statistics: &data.Statistics{
Clients: data.Clients{
Clients: &data.Clients{
Total: 23,
},
},
@ -35,6 +35,12 @@ func createTestNodes() *runtime.Nodes {
Hardware: data.Hardware{
Model: "TP-Link 841",
},
Software: data.Software{
Firmware: &struct {
Base string `json:"base,omitempty"`
Release string `json:"release,omitempty"`
}{},
},
},
}
nodeData.NodeInfo.Software.Firmware.Release = "2016.1.6+entenhausen1"
@ -42,7 +48,7 @@ func createTestNodes() *runtime.Nodes {
nodes.Update("112233445566", &data.ResponseData{
Statistics: &data.Statistics{
Clients: data.Clients{
Clients: &data.Clients{
Total: 2,
},
},

View File

@ -38,7 +38,9 @@ func NewGlobalStats(nodes *Nodes) (result *GlobalStats) {
}
if info := node.Nodeinfo; info != nil {
result.Models.Increment(info.Hardware.Model)
result.Firmwares.Increment(info.Software.Firmware.Release)
if firmware := info.Software.Firmware; firmware != nil {
result.Firmwares.Increment(info.Software.Firmware.Release)
}
}
}
}

View File

@ -39,9 +39,17 @@ func createTestNodes() *Nodes {
Hardware: data.Hardware{
Model: "TP-Link 841",
},
Software: data.Software{
Firmware: &struct {
Base string `json:"base,omitempty"`
Release string `json:"release,omitempty"`
}{
Base: "2016.1.6",
Release: "2016.1.6+entenhausen1",
},
},
},
}
nodeData.NodeInfo.Software.Firmware.Release = "2016.1.6+entenhausen1"
nodes.Update("abcdef012345", nodeData)
nodes.Update("112233445566", &data.ResponseData{