check also MAC addresses and common formating Signed-off-by: Christian Goll <cgoll@suse.de> reformat ipaddr for test coverage fixed processing of default values updated transformer tests correct behavior for tags add tests for tags new tests for primary network Signed-off-by: Christian Goll <cgoll@suse.de>
49 lines
968 B
Go
49 lines
968 B
Go
package node
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
"strings"
|
|
)
|
|
|
|
func (config *NodeYaml) FindByHwaddr(hwa string) (NodeInfo, error) {
|
|
if _, err := net.ParseMAC(hwa); err != nil {
|
|
return NodeInfo{}, errors.New("invalid hardware address: " + hwa)
|
|
}
|
|
|
|
var ret NodeInfo
|
|
|
|
n, _ := config.FindAllNodes()
|
|
|
|
for _, node := range n {
|
|
for _, dev := range node.NetDevs {
|
|
if strings.EqualFold(dev.Hwaddr.Get(), hwa) {
|
|
return node, nil
|
|
}
|
|
}
|
|
}
|
|
|
|
return ret, errors.New("No nodes found with HW Addr: " + hwa)
|
|
}
|
|
|
|
func (config *NodeYaml) FindByIpaddr(ipaddr string) (NodeInfo, error) {
|
|
if addr := net.ParseIP(ipaddr); addr == nil {
|
|
return NodeInfo{}, errors.New("invalid IP:" + ipaddr)
|
|
} else {
|
|
ipaddr = addr.String()
|
|
}
|
|
var ret NodeInfo
|
|
|
|
n, _ := config.FindAllNodes()
|
|
|
|
for _, node := range n {
|
|
for _, dev := range node.NetDevs {
|
|
if dev.Ipaddr.Get() == ipaddr {
|
|
return node, nil
|
|
}
|
|
}
|
|
}
|
|
|
|
return ret, errors.New("No nodes found with IP Addr: " + ipaddr)
|
|
}
|