mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-21 16:09:59 +08:00
fixed egress gateway
This commit is contained in:
@@ -559,6 +559,8 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
}
|
}
|
||||||
|
log.Println("GATEWAY:",gateway)
|
||||||
|
log.Println("NODE:",node)
|
||||||
err = ValidateEgressGateway(gateway)
|
err = ValidateEgressGateway(gateway)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
@@ -575,23 +577,25 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
|
|||||||
}
|
}
|
||||||
if node.PostUp != "" {
|
if node.PostUp != "" {
|
||||||
if !strings.Contains(node.PostUp, postUpCmd) {
|
if !strings.Contains(node.PostUp, postUpCmd) {
|
||||||
node.PostUp = node.PostUp + "; " + postUpCmd
|
postUpCmd = node.PostUp + "; " + postUpCmd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if node.PostDown != "" {
|
if node.PostDown != "" {
|
||||||
if !strings.Contains(node.PostDown, postDownCmd) {
|
if !strings.Contains(node.PostDown, postDownCmd) {
|
||||||
node.PostDown = node.PostDown + "; " + postDownCmd
|
postDownCmd = node.PostDown + "; " + postDownCmd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
key, err := functions.GetRecordKey(gateway.NodeID, gateway.NetID)
|
key, err := functions.GetRecordKey(gateway.NodeID, gateway.NetID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return node, err
|
return node, err
|
||||||
}
|
}
|
||||||
|
node.PostUp = postUpCmd
|
||||||
|
node.PostDown = postDownCmd
|
||||||
|
node.SetLastModified()
|
||||||
nodeData, err := json.Marshal(&node)
|
nodeData, err := json.Marshal(&node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return node, err
|
return node, err
|
||||||
}
|
}
|
||||||
node.SetLastModified()
|
|
||||||
err = database.Insert(key, string(nodeData), database.NODES_TABLE_NAME)
|
err = database.Insert(key, string(nodeData), database.NODES_TABLE_NAME)
|
||||||
// prepare update model.
|
// prepare update model.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -3,7 +3,6 @@ package models
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"log"
|
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -265,9 +264,7 @@ func (newNode *Node) Fill(currentNode *Node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (currentNode *Node) Update(newNode *Node) error {
|
func (currentNode *Node) Update(newNode *Node) error {
|
||||||
log.Println("Node SaveConfig:", newNode.SaveConfig)
|
|
||||||
newNode.Fill(currentNode)
|
newNode.Fill(currentNode)
|
||||||
log.Println("Node SaveConfig 2:", newNode.SaveConfig)
|
|
||||||
if err := newNode.Validate(true); err != nil {
|
if err := newNode.Validate(true); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -301,7 +298,6 @@ func IsIpv4Net(host string) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (node *Node) Validate(isUpdate bool) error {
|
func (node *Node) Validate(isUpdate bool) error {
|
||||||
log.Println("Node SaveConfig:", node.SaveConfig)
|
|
||||||
v := validator.New()
|
v := validator.New()
|
||||||
_ = v.RegisterValidation("macaddress_unique", func(fl validator.FieldLevel) bool {
|
_ = v.RegisterValidation("macaddress_unique", func(fl validator.FieldLevel) bool {
|
||||||
if isUpdate {
|
if isUpdate {
|
||||||
|
Reference in New Issue
Block a user