began transition

This commit is contained in:
0xdcarns 2022-01-10 10:55:05 -05:00
parent d6e1351fc5
commit c033be41bb
11 changed files with 31 additions and 56 deletions

1
go.mod
View file

@ -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
View file

@ -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=

View file

@ -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)
}
}

View file

@ -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
}

View file

@ -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)
}
}

View file

@ -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)
}

View file

@ -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
}

View file

@ -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

View file

@ -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
}

View file

@ -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
}
}
}

View file

@ -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,