mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-20 07:16:06 +08:00
began transition
This commit is contained in:
parent
d6e1351fc5
commit
c033be41bb
1
go.mod
1
go.mod
|
@ -36,6 +36,7 @@ require (
|
|||
github.com/go-playground/locales v0.14.0 // indirect
|
||||
github.com/go-playground/universal-translator v0.18.0 // indirect
|
||||
github.com/google/go-cmp v0.5.5 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 // indirect
|
||||
github.com/leodido/go-urn v1.2.1 // indirect
|
||||
github.com/mdlayher/genetlink v1.0.0 // indirect
|
||||
|
|
2
go.sum
2
go.sum
|
@ -70,6 +70,8 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
|||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4=
|
||||
github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q=
|
||||
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||
|
|
|
@ -110,7 +110,6 @@ func NetworkNodesUpdatePullChanges(networkName string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
@ -355,7 +354,6 @@ func UpdateNetworkLocalAddresses(networkName string) error {
|
|||
fmt.Println("error in node address assignment!")
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(newNodeData), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
@ -387,7 +385,6 @@ func RemoveNetworkNodeIPv6Addresses(networkName string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
@ -424,7 +421,6 @@ func UpdateNetworkNodeAddresses(networkName string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
@ -630,7 +626,6 @@ func networkNodesUpdateAction(networkName string, action string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,7 +125,6 @@ func UpdateNode(currentNode *models.Node, newNode *models.Node) error {
|
|||
if err := ValidateNode(newNode, true); err != nil {
|
||||
return err
|
||||
}
|
||||
newNode.SetID()
|
||||
if newNode.ID == currentNode.ID {
|
||||
newNode.SetLastModified()
|
||||
if data, err := json.Marshal(newNode); err != nil {
|
||||
|
@ -285,7 +284,6 @@ func SetNodeDefaults(node *models.Node) {
|
|||
node.SetRoamingDefault()
|
||||
node.SetPullChangesDefault()
|
||||
node.SetDefaultAction()
|
||||
node.SetID()
|
||||
node.SetIsServerDefault()
|
||||
node.SetIsStaticDefault()
|
||||
node.SetDefaultEgressGateway()
|
||||
|
@ -380,3 +378,16 @@ func GetNodeRelay(network string, relayedNodeAddr string) (models.Node, error) {
|
|||
}
|
||||
return relay, errors.New("could not find relay for node " + relayedNodeAddr)
|
||||
}
|
||||
|
||||
// GetNodeByID - get node by uuid, should have been set by create
|
||||
func GetNodeByID(uuid string) (models.Node, error) {
|
||||
var record, err = database.FetchRecord(database.NODES_TABLE_NAME, uuid)
|
||||
if err != nil {
|
||||
return models.Node{}, err
|
||||
}
|
||||
var node models.Node
|
||||
if err = json.Unmarshal([]byte(record), &node); err != nil {
|
||||
return models.Node{}, err
|
||||
}
|
||||
return node, nil
|
||||
}
|
||||
|
|
|
@ -73,7 +73,6 @@ func SetRelayedNodes(yesOrno string, networkName string, addrs []string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.SetID()
|
||||
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,7 +113,6 @@ func ServerJoin(networkSettings *models.Network, serverID string) error {
|
|||
node.Endpoint = node.LocalAddress
|
||||
}
|
||||
|
||||
node.SetID()
|
||||
if err = StorePrivKey(node.ID, privateKey); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -215,7 +214,6 @@ func ServerLeave(mac string, network string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
serverNode.SetID()
|
||||
return DeleteNode(&serverNode, true)
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/gravitl/netmaker/database"
|
||||
"github.com/gravitl/netmaker/logger"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
|
@ -44,7 +45,6 @@ func SetNetworkServerPeers(node *models.Node) {
|
|||
// DeleteNode - deletes a node from database or moves into delete nodes table
|
||||
func DeleteNode(node *models.Node, exterminate bool) error {
|
||||
var err error
|
||||
node.SetID()
|
||||
var key = node.ID
|
||||
if !exterminate {
|
||||
args := strings.Split(key, "###")
|
||||
|
@ -114,15 +114,14 @@ func CreateNode(node *models.Node) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key, err := GetRecordKey(node.MacAddress, node.Network)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
node.ID = uuid.NewString()
|
||||
|
||||
nodebytes, err := json.Marshal(&node)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = database.Insert(key, string(nodebytes), database.NODES_TABLE_NAME)
|
||||
err = database.Insert(node.ID, string(nodebytes), database.NODES_TABLE_NAME)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -283,7 +283,6 @@ func setServerPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) e
|
|||
|
||||
func setWGConfig(node *models.Node, peerupdate bool) error {
|
||||
|
||||
node.SetID()
|
||||
peers, hasGateway, gateways, err := GetServerPeers(node)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -305,7 +304,6 @@ func setWGConfig(node *models.Node, peerupdate bool) error {
|
|||
|
||||
func setWGKeyConfig(node *models.Node) error {
|
||||
|
||||
node.SetID()
|
||||
privatekey, err := wgtypes.GeneratePrivateKey()
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -2,7 +2,6 @@ package models
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"math/rand"
|
||||
"net"
|
||||
"strings"
|
||||
|
@ -75,11 +74,17 @@ type Node struct {
|
|||
MTU int32 `json:"mtu" bson:"mtu" yaml:"mtu"`
|
||||
}
|
||||
|
||||
// NodesArray - used for node sorting
|
||||
type NodesArray []Node
|
||||
|
||||
func (a NodesArray) Len() int { return len(a) }
|
||||
// NodesArray.Len - gets length of node array
|
||||
func (a NodesArray) Len() int { return len(a) }
|
||||
|
||||
// NodesArray.Less - gets returns lower rank of two node addresses
|
||||
func (a NodesArray) Less(i, j int) bool { return isLess(a[i].Address, a[j].Address) }
|
||||
func (a NodesArray) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
|
||||
// NodesArray.Swap - swaps two nodes in array
|
||||
func (a NodesArray) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
|
||||
func isLess(ipA string, ipB string) bool {
|
||||
ipNetA := net.ParseIP(ipA)
|
||||
|
@ -87,12 +92,14 @@ func isLess(ipA string, ipB string) bool {
|
|||
return bytes.Compare(ipNetA, ipNetB) < 0
|
||||
}
|
||||
|
||||
// Node.SetDefaultMTU - sets default MTU of a node
|
||||
func (node *Node) SetDefaultMTU() {
|
||||
if node.MTU == 0 {
|
||||
node.MTU = 1280
|
||||
}
|
||||
}
|
||||
|
||||
// Node.SetDefaulIsPending - sets ispending default
|
||||
func (node *Node) SetDefaulIsPending() {
|
||||
if node.IsPending == "" {
|
||||
node.IsPending = "no"
|
||||
|
@ -191,10 +198,6 @@ func (node *Node) SetLastPeerUpdate() {
|
|||
node.LastPeerUpdate = time.Now().Unix()
|
||||
}
|
||||
|
||||
func (node *Node) SetID() {
|
||||
node.ID = node.MacAddress + "###" + node.Network
|
||||
}
|
||||
|
||||
func (node *Node) SetExpirationDateTime() {
|
||||
node.ExpirationDateTime = time.Now().Unix() + TEN_YEARS_IN_SECONDS
|
||||
}
|
||||
|
@ -379,10 +382,3 @@ func (node *Node) NameInNodeCharSet() bool {
|
|||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func (node *Node) GetID() (string, error) {
|
||||
if node.MacAddress == "" || node.Network == "" {
|
||||
return "", errors.New("unable to get record key")
|
||||
}
|
||||
return node.MacAddress + "###" + node.Network, nil
|
||||
}
|
||||
|
|
|
@ -97,9 +97,6 @@ func (config *ClientConfig) ReadConfig() {
|
|||
fmt.Println("no config or invalid")
|
||||
fmt.Println(err)
|
||||
log.Fatal(err)
|
||||
} else {
|
||||
config.Node.SetID()
|
||||
//config = cfg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,26 +102,6 @@ func getPrivateAddrBackup() (string, error) {
|
|||
return local, err
|
||||
}
|
||||
|
||||
// DEPRECATED
|
||||
// func needInterfaceUpdate(ctx context.Context, mac string, network string, iface string) (bool, string, error) {
|
||||
// var header metadata.MD
|
||||
// req := &nodepb.Object{
|
||||
// Data: mac + "###" + network,
|
||||
// Type: nodepb.STRING_TYPE,
|
||||
// }
|
||||
// readres, err := wcclient.ReadNode(ctx, req, grpc.Header(&header))
|
||||
// if err != nil {
|
||||
// return false, "", err
|
||||
// }
|
||||
// var resNode models.Node
|
||||
// if err := json.Unmarshal([]byte(readres.Data), &resNode); err != nil {
|
||||
// return false, iface, err
|
||||
// }
|
||||
// oldiface := resNode.Interface
|
||||
|
||||
// return iface != oldiface, oldiface, err
|
||||
// }
|
||||
|
||||
// GetNode - gets node locally
|
||||
func GetNode(network string) models.Node {
|
||||
|
||||
|
@ -184,7 +164,6 @@ func LeaveNetwork(network string) error {
|
|||
if err != nil {
|
||||
log.Printf("Failed to authenticate: %v", err)
|
||||
} else { // handle client side
|
||||
node.SetID()
|
||||
var header metadata.MD
|
||||
_, err = wcclient.DeleteNode(
|
||||
ctx,
|
||||
|
|
Loading…
Reference in a new issue