Cover a legacy case, allow server to run with uuids

This commit is contained in:
0xdcarns
2022-01-12 14:21:15 -05:00
parent 3677696f56
commit 2fe8025afa
5 changed files with 44 additions and 9 deletions

View File

@@ -5,12 +5,14 @@ import (
"errors"
"fmt"
"sort"
"strings"
"time"
"github.com/go-playground/validator/v10"
"github.com/gravitl/netmaker/database"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/servercfg"
"github.com/gravitl/netmaker/validation"
)
@@ -431,3 +433,28 @@ func GetDeletedNodeByID(uuid string) (models.Node, error) {
return node, nil
}
// GetNetworkServerNodeID - get network server node ID if exists
func GetNetworkServerNodeID(network string) (string, error) {
var nodes, err = GetNetworkNodes(network)
if err != nil {
return "", err
}
for _, node := range nodes {
if node.IsServer == "yes" {
if servercfg.GetNodeID() != "" {
if servercfg.GetNodeID() == node.MacAddress {
if strings.Contains(node.ID, "###") {
DeleteNodeByMacAddress(&node, true)
logger.Log(1, "deleted legacy server node on network "+node.Network)
return "", errors.New("deleted legacy server node on network " + node.Network)
}
return node.ID, nil
}
continue
}
return node.ID, nil
}
}
return "", errors.New("could not find server node")
}