mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 17:29:15 +08:00
refactor
This commit is contained in:
@@ -3,71 +3,11 @@ package controller
|
||||
import (
|
||||
"github.com/gravitl/netmaker/logger"
|
||||
"github.com/gravitl/netmaker/logic"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"github.com/gravitl/netmaker/serverctl"
|
||||
)
|
||||
|
||||
func runServerPeerUpdate() error {
|
||||
var serverData = models.ServerUpdateData{
|
||||
UpdatePeers: true,
|
||||
}
|
||||
serverctl.Push(serverData)
|
||||
var settings, err = serverctl.Pop()
|
||||
if err != nil {
|
||||
logger.Log(1, "error during pop,", err.Error())
|
||||
return err
|
||||
}
|
||||
return handlePeerUpdate(&settings.Node)
|
||||
}
|
||||
func runServerPeerUpdate(network string, shouldPeerUpdate bool) error {
|
||||
|
||||
func runServerUpdateIfNeeded(shouldPeersUpdate bool, node models.Node) error {
|
||||
// check if a peer/server update is needed
|
||||
var serverData = models.ServerUpdateData{
|
||||
UpdatePeers: shouldPeersUpdate,
|
||||
Node: node,
|
||||
}
|
||||
serverctl.Push(serverData)
|
||||
|
||||
return handleServerUpdate()
|
||||
}
|
||||
|
||||
func handleServerUpdate() error {
|
||||
var settings, settingsErr = serverctl.Pop()
|
||||
if settingsErr != nil {
|
||||
return settingsErr
|
||||
}
|
||||
var currentServerNodeID, err = logic.GetNetworkServerNodeID(settings.Node.Network)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// ensure server client is available
|
||||
if settings.UpdatePeers || (settings.Node.ID == currentServerNodeID) {
|
||||
err = serverctl.SyncServerNetwork(&settings.Node)
|
||||
if err != nil {
|
||||
logger.Log(1, "failed to sync,", settings.Node.Network, ", error:", err.Error())
|
||||
}
|
||||
}
|
||||
// if peers should update, update peers on network
|
||||
if settings.UpdatePeers {
|
||||
if err = handlePeerUpdate(&settings.Node); err != nil {
|
||||
return err
|
||||
}
|
||||
logger.Log(1, "updated peers on network:", settings.Node.Network)
|
||||
}
|
||||
// if the server node had an update, run the update function
|
||||
if settings.Node.ID == currentServerNodeID {
|
||||
if err = logic.ServerUpdate(&settings.Node); err != nil {
|
||||
return err
|
||||
}
|
||||
logger.Log(1, "server node:", settings.Node.ID, "was updated")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// tells server to update it's peers
|
||||
func handlePeerUpdate(node *models.Node) error {
|
||||
logger.Log(1, "updating peers on network:", node.Network)
|
||||
var currentServerNodeID, err = logic.GetNetworkServerNodeID(node.Network)
|
||||
var currentServerNodeID, err = logic.GetNetworkServerNodeID(network)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -75,11 +15,72 @@ func handlePeerUpdate(node *models.Node) error {
|
||||
if currErr != nil {
|
||||
return currErr
|
||||
}
|
||||
if err = logic.ServerUpdate(¤tServerNode); err != nil {
|
||||
if err = logic.ServerUpdate(¤tServerNode, shouldPeerUpdate); err != nil {
|
||||
logger.Log(1, "server node:", currentServerNode.ID, "failed update")
|
||||
return err
|
||||
}
|
||||
logger.Log(1, "server node:", currentServerNode.ID, "was updated")
|
||||
logic.SetNetworkServerPeers(¤tServerNode)
|
||||
logger.Log(1, "finished a peer update for network,", currentServerNode.Network)
|
||||
return nil
|
||||
}
|
||||
|
||||
// func runServerUpdateIfNeeded(shouldPeersUpdate bool, node models.Node) error {
|
||||
// // check if a peer/server update is needed
|
||||
// var serverData = models.ServerUpdateData{
|
||||
// UpdatePeers: shouldPeersUpdate,
|
||||
// Node: node,
|
||||
// }
|
||||
// serverctl.Push(serverData)
|
||||
|
||||
// return handleServerUpdate()
|
||||
// }
|
||||
|
||||
// func handleServerUpdate() error {
|
||||
// var settings, settingsErr = serverctl.Pop()
|
||||
// if settingsErr != nil {
|
||||
// return settingsErr
|
||||
// }
|
||||
// var currentServerNodeID, err = logic.GetNetworkServerNodeID(settings.Node.Network)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// // ensure server client is available
|
||||
// if settings.UpdatePeers || (settings.Node.ID == currentServerNodeID) {
|
||||
// err = serverctl.SyncServerNetwork(&settings.Node)
|
||||
// if err != nil {
|
||||
// logger.Log(1, "failed to sync,", settings.Node.Network, ", error:", err.Error())
|
||||
// }
|
||||
// }
|
||||
// // if peers should update, update peers on network
|
||||
// if settings.UpdatePeers {
|
||||
// if err = handlePeerUpdate(&settings.Node); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// logger.Log(1, "updated peers on network:", settings.Node.Network)
|
||||
// }
|
||||
// // if the server node had an update, run the update function
|
||||
// if settings.Node.ID == currentServerNodeID {
|
||||
// if err = logic.ServerUpdate(&settings.Node); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// logger.Log(1, "server node:", settings.Node.ID, "was updated")
|
||||
// }
|
||||
// return nil
|
||||
// }
|
||||
|
||||
// // tells server to update it's peers
|
||||
// func handlePeerUpdate(node *models.Node) error {
|
||||
// logger.Log(1, "updating peers on network:", node.Network)
|
||||
// var currentServerNodeID, err = logic.GetNetworkServerNodeID(node.Network)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// var currentServerNode, currErr = logic.GetNodeByID(currentServerNodeID)
|
||||
// if currErr != nil {
|
||||
// return currErr
|
||||
// }
|
||||
// if err = logic.ServerUpdate(¤tServerNode); err != nil {
|
||||
// logger.Log(1, "server node:", currentServerNode.ID, "failed update")
|
||||
// return err
|
||||
// }
|
||||
// logger.Log(1, "finished a peer update for network,", currentServerNode.Network)
|
||||
// return nil
|
||||
// }
|
||||
|
Reference in New Issue
Block a user