commented out logic

This commit is contained in:
0xdcarns 2022-09-28 13:05:41 -04:00
parent a1ec5fb354
commit 75fc15ac4c
6 changed files with 41 additions and 35 deletions

View file

@ -30,8 +30,8 @@ func InitEE() {
AddLicenseHooks()
})
logic.EnterpriseFailoverFunc = eelogic.SetFailover
logic.EnterpriseResetFailoverFunc = eelogic.ResetFailover
resetFailover()
// logic.EnterpriseResetFailoverFunc = eelogic.ResetFailover
// resetFailover()
}
func setControllerLimits() {
@ -42,17 +42,17 @@ func setControllerLimits() {
servercfg.Is_EE = true
}
func resetFailover() {
nets, err := logic.GetNetworks()
if err == nil {
for _, net := range nets {
err = logic.EnterpriseResetFailoverFunc.(func(string) error)(net.NetID)
if err != nil {
logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())
}
}
}
}
// func resetFailover() {
// nets, err := logic.GetNetworks()
// if err == nil {
// for _, net := range nets {
// err = logic.EnterpriseResetFailoverFunc.(func(string) error)(net.NetID)
// if err != nil {
// logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())
// }
// }
// }
// }
func retrieveEELogo() string {
return `

View file

@ -81,6 +81,9 @@ func setFailoverNode(failoverNode, node *models.Node) error {
if err != nil {
return err
}
if nodeToUpdate.FailoverNode == failoverNode.ID {
return nil
}
return logic.UpdateNode(&nodeToUpdate, node)
}
@ -89,6 +92,6 @@ func WipeFailover(nodeid string) error {
if err != nil {
return err
}
metrics.NeedsFailover = make(map[string]string)
metrics.FailoverPeers = make(map[string]string)
return logic.UpdateMetrics(nodeid, metrics)
}

View file

@ -224,9 +224,9 @@ func CreateIngressGateway(netid string, nodeid string, failover bool) (models.No
node.PostUp = postUpCmd
node.PostDown = postDownCmd
node.UDPHolePunch = "no"
if failover {
node.Failover = "yes"
}
// if failover && servercfg.Is_EE {
// node.Failover = "yes"
// }
data, err := json.Marshal(&node)
if err != nil {
return models.Node{}, err
@ -275,10 +275,10 @@ func DeleteIngressGateway(networkName string, nodeid string) (models.Node, error
}
}
err = EnterpriseResetFailoverFunc.(func(string) error)(node.Network)
if err != nil {
logger.Log(0, "failed to reset failover on network", node.Network, ":", err.Error())
}
// err = EnterpriseResetFailoverFunc.(func(string) error)(node.Network)
// if err != nil {
// logger.Log(0, "failed to reset failover on network", node.Network, ":", err.Error())
// }
data, err := json.Marshal(&node)
if err != nil {

View file

@ -37,8 +37,8 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
if servercfg.Is_EE {
metrics, _ = GetMetrics(node.ID)
}
if metrics.NeedsFailover == nil {
metrics.NeedsFailover = make(map[string]string)
if metrics.FailoverPeers == nil {
metrics.FailoverPeers = make(map[string]string)
}
// udppeers = the peers parsed from the local interface
// gives us correct port to reach
@ -92,8 +92,8 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
if isP2S && peer.IsHub != "yes" {
continue
}
if metrics.NeedsFailover[peer.ID] != "" {
continue
if len(metrics.FailoverPeers[peer.ID]) > 0 {
logger.Log(0, "peer", peer.Name, peer.PrimaryAddress(), "was found to be in failover peers list for node", node.Name, node.PrimaryAddress())
}
pubkey, err := wgtypes.ParseKey(peer.PublicKey)
if err != nil {
@ -271,16 +271,17 @@ func GetAllowedIPs(node, peer *models.Node, metrics *models.Metrics) []net.IPNet
allowedips = append(allowedips, extPeer.AllowedIPs...)
}
// if node is a failover node, add allowed ips from nodes it is handling
if peer.Failover == "yes" && metrics.NeedsFailover != nil {
if peer.Failover == "yes" && metrics.FailoverPeers != nil {
// travers through nodes that need handling
for k, v := range metrics.NeedsFailover {
for k, v := range metrics.FailoverPeers {
// if FailoverNode is me for this node, add allowedips
if v == peer.ID {
// get original node so we can traverse the allowed ips
nodeToFailover, err := GetNodeByID(k)
if err == nil {
// get all allowedips and append
allowedips = append(allowedips, getNodeAllowedIPs(&nodeToFailover, peer)...)
// allowedips = append(allowedips, getNodeAllowedIPs(&nodeToFailover, peer)...)
logger.Log(0, "failing over node", nodeToFailover.Name, nodeToFailover.PrimaryAddress())
}
}
}

View file

@ -9,7 +9,7 @@ type Metrics struct {
NodeName string `json:"node_name" bson:"node_name" yaml:"node_name"`
IsServer string `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
Connectivity map[string]Metric `json:"connectivity" bson:"connectivity" yaml:"connectivity"`
NeedsFailover map[string]string `json:"needsfailover" bson:"needsfailover" yaml:"needsfailover"`
FailoverPeers map[string]string `json:"needsfailover" bson:"needsfailover" yaml:"needsfailover"`
}
// Metric - holds a metric for data between nodes

View file

@ -209,16 +209,16 @@ func updateNodePeers(currentNode *models.Node) {
}
func updateNodeMetrics(currentNode *models.Node, newMetrics *models.Metrics) {
if newMetrics.NeedsFailover == nil {
newMetrics.NeedsFailover = make(map[string]string)
if newMetrics.FailoverPeers == nil {
newMetrics.FailoverPeers = make(map[string]string)
}
oldMetrics, err := logic.GetMetrics(currentNode.ID)
if err != nil {
logger.Log(1, "error finding old metrics for node", currentNode.ID, currentNode.Name)
return
}
if oldMetrics.NeedsFailover == nil {
oldMetrics.NeedsFailover = make(map[string]string)
if oldMetrics.FailoverPeers == nil {
oldMetrics.FailoverPeers = make(map[string]string)
}
var attachedClients []models.ExtClient
@ -259,8 +259,10 @@ func updateNodeMetrics(currentNode *models.Node, newMetrics *models.Metrics) {
return
}
for _, node := range nodes {
if !newMetrics.Connectivity[node.ID].Connected && node.Connected == "yes" {
newMetrics.NeedsFailover[node.ID] = node.FailoverNode
if !newMetrics.Connectivity[node.ID].Connected &&
len(newMetrics.Connectivity[node.ID].NodeName) > 0 &&
node.Connected == "yes" {
newMetrics.FailoverPeers[node.ID] = node.FailoverNode
}
}