mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
adding logic for key checks, OS on server
This commit is contained in:
@@ -175,8 +175,10 @@ func ValidateNode(node *models.Node, isUpdate bool) error {
|
||||
if isUpdate {
|
||||
return true
|
||||
}
|
||||
unique, _ := isMacAddressUnique(node.MacAddress, node.Network)
|
||||
|
||||
isFieldUnique, _ := IsNodeIDUnique(node)
|
||||
return isFieldUnique
|
||||
return isFieldUnique && unique
|
||||
})
|
||||
_ = v.RegisterValidation("network_exists", func(fl validator.FieldLevel) bool {
|
||||
_, err := GetNetworkByNode(node)
|
||||
@@ -592,3 +594,23 @@ func validateServer(currentNode, newNode *models.Node) bool {
|
||||
newNode.ListenPort == currentNode.ListenPort &&
|
||||
newNode.IsServer == "yes")
|
||||
}
|
||||
|
||||
// isMacAddressUnique - checks if mac is unique
|
||||
func isMacAddressUnique(macaddress string, networkName string) (bool, error) {
|
||||
|
||||
isunique := true
|
||||
|
||||
nodes, err := GetNetworkNodes(networkName)
|
||||
if err != nil {
|
||||
return database.IsEmptyRecord(err), err
|
||||
}
|
||||
|
||||
for _, node := range nodes {
|
||||
|
||||
if node.MacAddress == macaddress {
|
||||
isunique = false
|
||||
}
|
||||
}
|
||||
|
||||
return isunique, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user