refactor join

also removes server node
suspect there may be issues with proxy
and UI interactions with nodes
This commit is contained in:
Matthew R. Kasun
2022-12-20 15:29:09 -05:00
parent c086e9499d
commit 38cd4d7700
100 changed files with 1027 additions and 8833 deletions

View File

@@ -12,21 +12,25 @@ import (
)
// CreateRelay - creates a relay
func CreateRelay(relay models.RelayRequest) ([]models.LegacyNode, models.LegacyNode, error) {
var returnnodes []models.LegacyNode
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.LegacyNode{}, err
return returnnodes, models.Node{}, err
}
if node.OS != "linux" {
return returnnodes, models.LegacyNode{}, fmt.Errorf("only linux machines can be relay nodes")
host, err := GetHost(node.ID.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.LegacyNode{}, err
return returnnodes, models.Node{}, err
}
node.IsRelay = "yes"
node.IsRelay = true
node.RelayAddrs = relay.RelayAddrs
node.SetLastModified()
@@ -34,8 +38,8 @@ func CreateRelay(relay models.RelayRequest) ([]models.LegacyNode, models.LegacyN
if err != nil {
return returnnodes, node, err
}
if err = database.Insert(node.ID, string(nodeData), database.NODES_TABLE_NAME); err != nil {
return returnnodes, models.LegacyNode{}, err
if err = database.Insert(node.ID.String(), string(nodeData), database.NODES_TABLE_NAME); err != nil {
return returnnodes, models.Node{}, err
}
returnnodes, err = SetRelayedNodes(true, node.Network, node.RelayAddrs)
if err != nil {
@@ -45,45 +49,41 @@ func CreateRelay(relay models.RelayRequest) ([]models.LegacyNode, models.LegacyN
}
// SetRelayedNodes- set relayed nodes
func SetRelayedNodes(setRelayed bool, networkName string, addrs []string) ([]models.LegacyNode, error) {
var returnnodes []models.LegacyNode
func SetRelayedNodes(setRelayed bool, networkName string, addrs []string) ([]models.Node, error) {
var returnnodes []models.Node
networkNodes, err := GetNetworkNodes(networkName)
if err != nil {
return returnnodes, err
}
for _, node := range networkNodes {
if node.IsServer != "yes" {
for _, addr := range addrs {
if addr == node.Address || addr == node.Address6 {
if setRelayed {
node.IsRelayed = "yes"
} else {
node.IsRelayed = "no"
}
data, err := json.Marshal(&node)
if err != nil {
return returnnodes, err
}
database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
returnnodes = append(returnnodes, node)
for _, addr := range addrs {
if addr == node.Address.IP.String() || addr == node.Address6.IP.String() {
if setRelayed {
node.IsRelayed = true
} else {
node.IsRelayed = false
}
data, err := json.Marshal(&node)
if err != nil {
return returnnodes, err
}
database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
returnnodes = append(returnnodes, node)
}
}
}
return returnnodes, nil
}
func GetRelayedNodes(relayNode *models.LegacyNode) ([]models.LegacyNode, error) {
var returnnodes []models.LegacyNode
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 {
if node.IsServer != "yes" {
for _, addr := range relayNode.RelayAddrs {
if addr == node.Address || addr == node.Address6 {
returnnodes = append(returnnodes, node)
}
for _, addr := range relayNode.RelayAddrs {
if addr == node.Address.IP.String() || addr == node.Address6.IP.String() {
returnnodes = append(returnnodes, node)
}
}
}
@@ -102,8 +102,8 @@ func ValidateRelay(relay models.RelayRequest) error {
}
// UpdateRelay - updates a relay
func UpdateRelay(network string, oldAddrs []string, newAddrs []string) []models.LegacyNode {
var returnnodes []models.LegacyNode
func UpdateRelay(network string, oldAddrs []string, newAddrs []string) []models.Node {
var returnnodes []models.Node
time.Sleep(time.Second / 4)
_, err := SetRelayedNodes(false, network, oldAddrs)
if err != nil {
@@ -117,27 +117,27 @@ func UpdateRelay(network string, oldAddrs []string, newAddrs []string) []models.
}
// DeleteRelay - deletes a relay
func DeleteRelay(network, nodeid string) ([]models.LegacyNode, models.LegacyNode, error) {
var returnnodes []models.LegacyNode
func DeleteRelay(network, nodeid string) ([]models.Node, models.Node, error) {
var returnnodes []models.Node
node, err := GetNodeByID(nodeid)
if err != nil {
return returnnodes, models.LegacyNode{}, err
return returnnodes, models.Node{}, err
}
returnnodes, err = SetRelayedNodes(false, node.Network, node.RelayAddrs)
if err != nil {
return returnnodes, node, err
}
node.IsRelay = "no"
node.IsRelay = false
node.RelayAddrs = []string{}
node.SetLastModified()
data, err := json.Marshal(&node)
if err != nil {
return returnnodes, models.LegacyNode{}, err
return returnnodes, models.Node{}, err
}
if err = database.Insert(nodeid, string(data), database.NODES_TABLE_NAME); err != nil {
return returnnodes, models.LegacyNode{}, err
return returnnodes, models.Node{}, err
}
return returnnodes, node, nil
}