From 49150c172e54392b2fb10512a4353e5f5c8a64bf Mon Sep 17 00:00:00 2001 From: Gregory Kurtzer Date: Fri, 11 Feb 2022 15:36:38 +0000 Subject: [PATCH] Reverse compatibility for `keys` to `tags` --- internal/pkg/node/constructors.go | 27 +++++++++++++++++++++++++++ internal/pkg/node/datastructure.go | 1 + internal/pkg/node/modifiers.go | 16 +++++++--------- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/internal/pkg/node/constructors.go b/internal/pkg/node/constructors.go index e50727bf..3e12c133 100644 --- a/internal/pkg/node/constructors.go +++ b/internal/pkg/node/constructors.go @@ -107,6 +107,15 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) { n.NetDevs[devname].Default.Set(netdev.Default) } + // Merge Keys into Tags for backwards compatibility + if len(node.Tags) == 0 { + node.Tags = make(map[string]string) + } + for keyname, key := range node.Keys { + node.Tags[keyname] = key + delete(node.Keys, keyname) + } + for keyname, key := range node.Tags { if _, ok := n.Tags[keyname]; !ok { var key Entry @@ -161,6 +170,15 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) { n.NetDevs[devname].Default.SetAlt(netdev.Default, p) } + // Merge Keys into Tags for backwards compatibility + if len(config.NodeProfiles[p].Tags) == 0 { + config.NodeProfiles[p].Tags = make(map[string]string) + } + for keyname, key := range config.NodeProfiles[p].Keys { + config.NodeProfiles[p].Tags[keyname] = key + delete(config.NodeProfiles[p].Keys, keyname) + } + for keyname, key := range config.NodeProfiles[p].Tags { if _, ok := n.Tags[keyname]; !ok { var key Entry @@ -235,6 +253,15 @@ func (config *nodeYaml) FindAllProfiles() ([]NodeInfo, error) { p.NetDevs[devname].Default.Set(netdev.Default) } + // Merge Keys into Tags for backwards compatibility + if len(profile.Tags) == 0 { + profile.Tags = make(map[string]string) + } + for keyname, key := range profile.Keys { + profile.Tags[keyname] = key + delete(profile.Keys, keyname) + } + for keyname, key := range profile.Tags { if _, ok := p.Tags[keyname]; !ok { var key Entry diff --git a/internal/pkg/node/datastructure.go b/internal/pkg/node/datastructure.go index f2cefac0..a66f96a0 100644 --- a/internal/pkg/node/datastructure.go +++ b/internal/pkg/node/datastructure.go @@ -37,6 +37,7 @@ type NodeConf struct { Profiles []string `yaml:"profiles,omitempty"` NetDevs map[string]*NetDevs `yaml:"network devices,omitempty"` Tags map[string]string `yaml:"tags,omitempty"` + Keys map[string]string `yaml:"keys,omitempty"` // Reverse compatibility } type NetDevs struct { diff --git a/internal/pkg/node/modifiers.go b/internal/pkg/node/modifiers.go index 29557bd8..6502be84 100644 --- a/internal/pkg/node/modifiers.go +++ b/internal/pkg/node/modifiers.go @@ -73,14 +73,11 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error { config.Nodes[nodeID].SystemOverlay = node.SystemOverlay.GetReal() config.Nodes[nodeID].Root = node.Root.GetReal() config.Nodes[nodeID].AssetKey = node.AssetKey.GetReal() - config.Nodes[nodeID].Discoverable = node.Discoverable.GetReal() config.Nodes[nodeID].Profiles = node.Profiles + config.Nodes[nodeID].NetDevs = make(map[string]*NetDevs) - - config.Nodes[nodeID].Tags = make(map[string]string) - for devname, netdev := range node.NetDevs { var newdev NetDevs config.Nodes[nodeID].NetDevs[devname] = &newdev @@ -95,8 +92,11 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error { config.Nodes[nodeID].NetDevs[devname].Default = netdev.Default.GetReal() } + config.Nodes[nodeID].Tags = make(map[string]string) for keyname, key := range node.Tags { - config.Nodes[nodeID].Tags[keyname] = key.GetReal() + if key.GetReal() != "" { + config.Nodes[nodeID].Tags[keyname] = key.GetReal() + } } return nil @@ -161,14 +161,11 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error { config.NodeProfiles[profileID].SystemOverlay = profile.SystemOverlay.GetReal() config.NodeProfiles[profileID].Root = profile.Root.GetReal() config.NodeProfiles[profileID].AssetKey = profile.AssetKey.GetReal() - config.NodeProfiles[profileID].Discoverable = profile.Discoverable.GetReal() config.NodeProfiles[profileID].Profiles = profile.Profiles + config.NodeProfiles[profileID].NetDevs = make(map[string]*NetDevs) - - config.NodeProfiles[profileID].Tags = make(map[string]string) - for devname, netdev := range profile.NetDevs { var newdev NetDevs config.NodeProfiles[profileID].NetDevs[devname] = &newdev @@ -183,6 +180,7 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error { config.NodeProfiles[profileID].NetDevs[devname].Default = netdev.Default.GetReal() } + config.NodeProfiles[profileID].Tags = make(map[string]string) for keyname, key := range profile.Tags { config.NodeProfiles[profileID].Tags[keyname] = key.GetReal() }