mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
support tags system on ext clients
This commit is contained in:
@@ -727,11 +727,31 @@ func GetTagMapWithNodes(netID models.NetworkID) (tagNodesMap map[models.TagID][]
|
||||
tagNodesMap[nodeTagID] = append(tagNodesMap[nodeTagID], nodeI)
|
||||
}
|
||||
}
|
||||
return
|
||||
return AddTagMapWithStaticNodes(netID, tagNodesMap)
|
||||
}
|
||||
|
||||
func AddTagMapWithStaticNodes(netID models.NetworkID,
|
||||
tagNodesMap map[models.TagID][]models.Node) map[models.TagID][]models.Node {
|
||||
extclients, err := GetNetworkExtClients(netID.String())
|
||||
if err != nil {
|
||||
return tagNodesMap
|
||||
}
|
||||
for _, extclient := range extclients {
|
||||
if extclient.Tags == nil || extclient.RemoteAccessClientID != "" {
|
||||
continue
|
||||
}
|
||||
for tagID := range extclient.Tags {
|
||||
tagNodesMap[tagID] = append(tagNodesMap[tagID], models.Node{
|
||||
IsStatic: true,
|
||||
StaticNode: extclient,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
return tagNodesMap
|
||||
}
|
||||
|
||||
func GetNodesWithTag(tagID models.TagID) map[string]models.Node {
|
||||
|
||||
nMap := make(map[string]models.Node)
|
||||
tag, err := GetTag(tagID)
|
||||
if err != nil {
|
||||
@@ -746,5 +766,41 @@ func GetNodesWithTag(tagID models.TagID) map[string]models.Node {
|
||||
nMap[nodeI.ID.String()] = nodeI
|
||||
}
|
||||
}
|
||||
return AddStaticNodesWithTag(tag, nMap)
|
||||
}
|
||||
|
||||
func AddStaticNodesWithTag(tag models.Tag, nMap map[string]models.Node) map[string]models.Node {
|
||||
extclients, err := GetNetworkExtClients(tag.Network.String())
|
||||
if err != nil {
|
||||
return nMap
|
||||
}
|
||||
for _, extclient := range extclients {
|
||||
if extclient.RemoteAccessClientID != "" {
|
||||
continue
|
||||
}
|
||||
nMap[extclient.ClientID] = models.Node{
|
||||
IsStatic: true,
|
||||
StaticNode: extclient,
|
||||
}
|
||||
}
|
||||
return nMap
|
||||
}
|
||||
|
||||
func GetStaticNodeWithTag(tagID models.TagID) map[string]models.Node {
|
||||
nMap := make(map[string]models.Node)
|
||||
tag, err := GetTag(tagID)
|
||||
if err != nil {
|
||||
return nMap
|
||||
}
|
||||
extclients, err := GetNetworkExtClients(tag.Network.String())
|
||||
if err != nil {
|
||||
return nMap
|
||||
}
|
||||
for _, extclient := range extclients {
|
||||
nMap[extclient.ClientID] = models.Node{
|
||||
IsStatic: true,
|
||||
StaticNode: extclient,
|
||||
}
|
||||
}
|
||||
return nMap
|
||||
}
|
||||
|
Reference in New Issue
Block a user