Implement device ID

This commit is contained in:
Magnus Åhall 2026-02-27 11:31:19 +01:00
parent 7213ee7a28
commit e0e2d9b164
4 changed files with 83 additions and 79 deletions

28
main.go
View file

@ -6,11 +6,11 @@ import (
// Standard
"flag"
"fmt"
"log/slog"
"os"
"path"
"slices"
"fmt"
)
const VERSION = "v1"
@ -77,35 +77,35 @@ func main() {
devices = make(map[string]RouterosDevice)
/*
device.Host = config.Device.Address
device.Port = config.Device.Port
device.Username = config.Device.Username
device.Password = config.Device.Password
device.Timeout = config.Device.Timeout
device.Init()
device.Host = config.Device.Address
device.Port = config.Device.Port
device.Username = config.Device.Username
device.Password = config.Device.Password
device.Timeout = config.Device.Timeout
device.Init()
*/
registerWebserverHandlers()
startWebserver()
}
func routerosDevice(name string) (dev RouterosDevice, err error) {
func routerosDevice(id string) (dev RouterosDevice, err error) {
var found bool
if dev, found = devices[name]; found {
logger.Debug("routeros", "op", "connection", "name", name, "cached", true)
if dev, found = devices[id]; found {
logger.Debug("routeros", "op", "connection", "ID", id, "cached", true)
return
}
i := slices.IndexFunc(config.Devices, func(d Device) bool {
return d.Name == name
return d.ID == id
})
if i == -1 {
err = fmt.Errorf("Unknown device '%s'", name)
err = fmt.Errorf("Unknown device '%s'", id)
logger.Error("routeros", "op", "connection", "error", err)
return
}
logger.Debug("routeros", "name", name, "cached", false)
logger.Debug("routeros", "name", id, "cached", false)
confDev := config.Devices[i]
dev.Host = confDev.Address
dev.Port = confDev.Port
@ -113,7 +113,7 @@ func routerosDevice(name string) (dev RouterosDevice, err error) {
dev.Password = confDev.Password
dev.Timeout = confDev.Timeout
dev.Init()
devices[name] = dev
devices[id] = dev
return
}