Add Static Gateway Configuration
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
Stefan Hoffmann 2023-05-11 21:38:10 +02:00
parent 452a550801
commit 20b368f6f7
Signed by: stefan
GPG Key ID: 8EFC7042BF8D5CDD
3 changed files with 56 additions and 0 deletions

View File

@ -95,6 +95,11 @@ func processAPIs() error {
nodes = append(nodes, mvNodes...) nodes = append(nodes, mvNodes...)
links = append(links, mvLinks...) links = append(links, mvLinks...)
} }
if conf.Gateways.Enabled {
log.Println("Processing Gateways")
gwNodes := processGateways()
nodes = append(nodes, gwNodes...)
}
// assemble final struct // assemble final struct
o := output{ o := output{
Timestamp: time.Now().Format(iso8601), Timestamp: time.Now().Format(iso8601),

47
staticDevices.go Normal file
View File

@ -0,0 +1,47 @@
package main
import (
"log"
"strings"
"time"
)
func processGateways() []node {
d := getDevices(conf.Gateways.GatewaysURL)
var nodes []node
for i := range d.Devices {
log.Println("Processing Static Device: ", d.Devices[i].Name)
nodes = append(nodes, node{
Firstseen: time.Now().Format(iso8601),
Lastseen: time.Now().Format(iso8601),
IsOnline: true,
IsGateway: true,
Clients: 0,
ClientsWifi24: 0,
ClientsWifi5: 0,
ClientsOther: 0,
RootFSUsage: 0,
LoadAVG: 0,
MemoryUsage: 0,
Uptime: time.Now().Format(iso8601),
GatewayNexthop: "00:00:00:00:00",
Gateway: "00:00:00:00:00",
NodeID: strings.ReplaceAll(d.Devices[i].MAC, ":", ""),
MAC: d.Devices[i].MAC,
Domain: d.Devices[i].Domain,
Hostname: "[Gateway] " + d.Devices[i].Name,
Owner: "Freifunk Troisdorf",
Firmware: firmware{
Base: "KVM",
Release: "Ubuntu 22.04",
},
Autoupdater: autoupdater{
Enabled: false,
Branch: "stable",
},
NProc: 1,
Model: "KVM",
})
}
return nodes
}

View File

@ -32,6 +32,10 @@ type config struct {
URL string `json:"URL"` URL string `json:"URL"`
} `json:"files"` } `json:"files"`
} `json:"meshviewer"` } `json:"meshviewer"`
Gateways struct {
Enabled bool `json:"enabled"`
GatewaysURL string `json:"gatewaysurl"`
} `json:"gateways"`
} }
type device struct { type device struct {