feat(local-config): initial commit

This commit is contained in:
Mikaël Cluseau 2018-12-10 17:22:01 +11:00
parent e82b59c032
commit bc435a88a1

View File

@ -0,0 +1,60 @@
package localconfig
import "strings"
type LocalConfig struct {
Clusters []*Cluster
Hosts []*Host
}
type Cluster struct {
Name string
Addons []byte
}
type Host struct {
Name string
MACs []string
IPs []string
Kernel string
Initrd string
Layers map[string]string
Config []byte
}
func (c *LocalConfig) ClusterByName(name string) *Cluster {
for _, cluster := range c.Clusters {
if cluster.Name == name {
return cluster
}
}
return nil
}
func (c *LocalConfig) HostByIP(ip string) *Host {
for _, host := range c.Hosts {
for _, hostIP := range host.IPs {
if hostIP == ip {
return host
}
}
}
return nil
}
func (c *LocalConfig) HostByMAC(mac string) *Host {
// a bit of normalization
mac = strings.Replace(strings.ToLower(mac), "-", ":", -1)
for _, host := range c.Hosts {
for _, hostMAC := range host.MACs {
if strings.ToLower(hostMAC) == mac {
return host
}
}
}
return nil
}