mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
[NET-546] Move ee code to ee package, unify ee status and terminology (#2538)
* Move ee code to ee package and unify ee status to IsPro * Consolidate naming for paid/professional/enterprise version as "pro". Notes: - Changes image tags - Changes build tags - Changes package names - Doesn't change links to docs that mention "ee" - Doesn't change parameters sent to PostHog that mention "ee" * Revert docker image tag being -pro, back to -ee * Revert go build tag being pro, back to ee * Add build tags for some ee content * [2] Revert go build tag being pro, back to ee * Fix test workflow * Add a json tag to be backwards compatible with frontend "IsEE" check * Add a json tag for the serverconfig struct for IsEE * Ammend json tag to Is_EE * fix ee tags --------- Co-authored-by: Abhishek Kondur <abhi281342@gmail.com>
This commit is contained in:

committed by
GitHub

parent
31fcc8cd6d
commit
1a1ba1ccf4
144
logic/relay.go
144
logic/relay.go
@@ -1,149 +1,25 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/gravitl/netmaker/logger"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"net"
|
||||
)
|
||||
|
||||
// CreateRelay - creates a relay
|
||||
func CreateRelay(relay models.RelayRequest) ([]models.Node, models.Node, error) {
|
||||
var returnnodes []models.Node
|
||||
|
||||
node, err := GetNodeByID(relay.NodeID)
|
||||
if err != nil {
|
||||
return returnnodes, models.Node{}, err
|
||||
}
|
||||
host, err := GetHost(node.HostID.String())
|
||||
if err != nil {
|
||||
return returnnodes, models.Node{}, err
|
||||
}
|
||||
if host.OS != "linux" {
|
||||
return returnnodes, models.Node{}, fmt.Errorf("only linux machines can be relay nodes")
|
||||
}
|
||||
err = ValidateRelay(relay)
|
||||
if err != nil {
|
||||
return returnnodes, models.Node{}, err
|
||||
}
|
||||
node.IsRelay = true
|
||||
node.RelayedNodes = relay.RelayedNodes
|
||||
node.SetLastModified()
|
||||
err = UpsertNode(&node)
|
||||
if err != nil {
|
||||
return returnnodes, node, err
|
||||
}
|
||||
returnnodes = SetRelayedNodes(true, relay.NodeID, relay.RelayedNodes)
|
||||
return returnnodes, node, nil
|
||||
var RelayedAllowedIPs = func(peer, node *models.Node) []net.IPNet {
|
||||
return []net.IPNet{}
|
||||
}
|
||||
|
||||
// SetRelayedNodes- sets and saves node as relayed
|
||||
func SetRelayedNodes(setRelayed bool, relay string, relayed []string) []models.Node {
|
||||
var returnnodes []models.Node
|
||||
for _, id := range relayed {
|
||||
node, err := GetNodeByID(id)
|
||||
if err != nil {
|
||||
logger.Log(0, "setRelayedNodes.GetNodebyID", err.Error())
|
||||
continue
|
||||
}
|
||||
node.IsRelayed = setRelayed
|
||||
if node.IsRelayed {
|
||||
node.RelayedBy = relay
|
||||
} else {
|
||||
node.RelayedBy = ""
|
||||
}
|
||||
node.SetLastModified()
|
||||
if err := UpsertNode(&node); err != nil {
|
||||
logger.Log(0, "setRelayedNodes.Insert", err.Error())
|
||||
continue
|
||||
}
|
||||
returnnodes = append(returnnodes, node)
|
||||
}
|
||||
return returnnodes
|
||||
var GetAllowedIpsForRelayed = func(relayed, relay *models.Node) []net.IPNet {
|
||||
return []net.IPNet{}
|
||||
}
|
||||
|
||||
//func GetRelayedNodes(relayNode *models.Node) (models.Node, error) {
|
||||
// var returnnodes []models.Node
|
||||
// networkNodes, err := GetNetworkNodes(relayNode.Network)
|
||||
// if err != nil {
|
||||
// return returnnodes, err
|
||||
// }
|
||||
// for _, node := range networkNodes {
|
||||
// for _, addr := range relayNode.RelayAddrs {
|
||||
// if addr == node.Address.IP.String() || addr == node.Address6.IP.String() {
|
||||
// returnnodes = append(returnnodes, node)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return returnnodes, nil
|
||||
//}
|
||||
|
||||
// ValidateRelay - checks if relay is valid
|
||||
func ValidateRelay(relay models.RelayRequest) error {
|
||||
var err error
|
||||
//isIp := functions.IsIpCIDR(gateway.RangeString)
|
||||
empty := len(relay.RelayedNodes) == 0
|
||||
if empty {
|
||||
return errors.New("IP Ranges Cannot Be Empty")
|
||||
}
|
||||
node, err := GetNodeByID(relay.NodeID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if node.IsRelay {
|
||||
return errors.New("node is already acting as a relay")
|
||||
}
|
||||
for _, relayedNodeID := range relay.RelayedNodes {
|
||||
relayedNode, err := GetNodeByID(relayedNodeID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if relayedNode.IsIngressGateway {
|
||||
return errors.New("cannot relay an ingress gateway (" + relayedNodeID + ")")
|
||||
}
|
||||
}
|
||||
return err
|
||||
var UpdateRelayed = func(currentNode, newNode *models.Node) {
|
||||
}
|
||||
|
||||
// UpdateRelayed - updates relay nodes
|
||||
func UpdateRelayed(relay string, oldNodes []string, newNodes []string) []models.Node {
|
||||
_ = SetRelayedNodes(false, relay, oldNodes)
|
||||
return SetRelayedNodes(true, relay, newNodes)
|
||||
var SetRelayedNodes = func(setRelayed bool, relay string, relayed []string) []models.Node {
|
||||
return []models.Node{}
|
||||
}
|
||||
|
||||
// DeleteRelay - deletes a relay
|
||||
func DeleteRelay(network, nodeid string) ([]models.Node, models.Node, error) {
|
||||
var returnnodes []models.Node
|
||||
node, err := GetNodeByID(nodeid)
|
||||
if err != nil {
|
||||
return returnnodes, models.Node{}, err
|
||||
}
|
||||
returnnodes = SetRelayedNodes(false, nodeid, node.RelayedNodes)
|
||||
node.IsRelay = false
|
||||
node.RelayedNodes = []string{}
|
||||
node.SetLastModified()
|
||||
if err = UpsertNode(&node); err != nil {
|
||||
return returnnodes, models.Node{}, err
|
||||
}
|
||||
return returnnodes, node, nil
|
||||
}
|
||||
|
||||
func getRelayedAddresses(id string) []net.IPNet {
|
||||
addrs := []net.IPNet{}
|
||||
node, err := GetNodeByID(id)
|
||||
if err != nil {
|
||||
logger.Log(0, "getRelayedAddresses: "+err.Error())
|
||||
return addrs
|
||||
}
|
||||
if node.Address.IP != nil {
|
||||
node.Address.Mask = net.CIDRMask(32, 32)
|
||||
addrs = append(addrs, node.Address)
|
||||
}
|
||||
if node.Address6.IP != nil {
|
||||
node.Address.Mask = net.CIDRMask(128, 128)
|
||||
addrs = append(addrs, node.Address6)
|
||||
}
|
||||
return addrs
|
||||
var RelayUpdates = func(currentNode, newNode *models.Node) bool {
|
||||
return false
|
||||
}
|
||||
|
Reference in New Issue
Block a user