Przeglądaj źródła

add internet gateway to client gateway

Abhishek Kondur 1 rok temu
rodzic
commit
2dcef0d0e4
4 zmienionych plików z 8 dodań i 2 usunięć
  1. 2 0
      logic/gateway.go
  2. 2 0
      models/api_node.go
  3. 1 0
      models/node.go
  4. 3 2
      models/structs.go

+ 2 - 0
logic/gateway.go

@@ -164,6 +164,7 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
 		return models.Node{}, err
 	}
 	node.IsIngressGateway = true
+	node.IsInternetGateway = ingress.IsInternetGateway
 	node.IngressGatewayRange = network.AddressRange
 	node.IngressGatewayRange6 = network.AddressRange6
 	node.IngressDNS = ingress.ExtclientDNS
@@ -220,6 +221,7 @@ func DeleteIngressGateway(nodeid string) (models.Node, bool, []models.ExtClient,
 	wasFailover := node.Failover
 	node.LastModified = time.Now()
 	node.IsIngressGateway = false
+	node.IsInternetGateway = false
 	node.IngressGatewayRange = ""
 	node.Failover = false
 	err = UpsertNode(&node)

+ 2 - 0
models/api_node.go

@@ -28,6 +28,7 @@ type ApiNode struct {
 	RelayedNodes            []string `json:"relaynodes" yaml:"relayedNodes"`
 	IsEgressGateway         bool     `json:"isegressgateway"`
 	IsIngressGateway        bool     `json:"isingressgateway"`
+	IsInternetGateway       bool     `json:"isinternetgateway" yaml:"isinternetgateway"`
 	EgressGatewayRanges     []string `json:"egressgatewayranges"`
 	EgressGatewayNatEnabled bool     `json:"egressgatewaynatenabled"`
 	FailoverNode            string   `json:"failovernode"`
@@ -161,6 +162,7 @@ func (nm *Node) ConvertToAPINode() *ApiNode {
 	apiNode.PendingDelete = nm.PendingDelete
 	apiNode.DefaultACL = nm.DefaultACL
 	apiNode.Failover = nm.Failover
+	apiNode.IsInternetGateway = nm.IsInternetGateway
 	return &apiNode
 }
 

+ 1 - 0
models/node.go

@@ -69,6 +69,7 @@ type CommonNode struct {
 	IsEgressGateway     bool         `json:"isegressgateway" yaml:"isegressgateway"`
 	EgressGatewayRanges []string     `json:"egressgatewayranges" bson:"egressgatewayranges" yaml:"egressgatewayranges"`
 	IsIngressGateway    bool         `json:"isingressgateway" yaml:"isingressgateway"`
+	IsInternetGateway   bool         `json:"isinternetgateway" yaml:"isinternetgateway"`
 	IsRelayed           bool         `json:"isrelayed" bson:"isrelayed" yaml:"isrelayed"`
 	RelayedBy           string       `json:"relayedby" bson:"relayedby" yaml:"relayedby"`
 	IsRelay             bool         `json:"isrelay" bson:"isrelay" yaml:"isrelay"`

+ 3 - 2
models/structs.go

@@ -189,8 +189,9 @@ type HostRelayRequest struct {
 
 // IngressRequest - ingress request struct
 type IngressRequest struct {
-	ExtclientDNS string `json:"extclientdns"`
-	Failover     bool   `json:"failover"`
+	ExtclientDNS      string `json:"extclientdns"`
+	Failover          bool   `json:"failover"`
+	IsInternetGateway bool   `json:"is_internet_gw"`
 }
 
 // ServerUpdateData - contains data to configure server