Quellcode durchsuchen

Merge branch 'NET-1613' of https://github.com/gravitl/netmaker into NET-1615

abhishek9686 vor 11 Monaten
Ursprung
Commit
725cb569dc
4 geänderte Dateien mit 20 neuen und 3 gelöschten Zeilen
  1. 3 0
      logic/gateway.go
  2. 2 2
      logic/tags.go
  3. 11 1
      migrate/migrate.go
  4. 4 0
      models/tags.go

+ 3 - 0
logic/gateway.go

@@ -2,6 +2,7 @@ package logic
 
 import (
 	"errors"
+	"fmt"
 	"time"
 
 	"github.com/gravitl/netmaker/database"
@@ -182,6 +183,7 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
 	if node.Metadata == "" {
 		node.Metadata = "This host can be used for remote access"
 	}
+	node.Tags[models.TagID(fmt.Sprintf("%s.%s", netid, models.RemoteAccessTagName))] = struct{}{}
 	err = UpsertNode(&node)
 	if err != nil {
 		return models.Node{}, err
@@ -257,6 +259,7 @@ func DeleteIngressGateway(nodeid string) (models.Node, []models.ExtClient, error
 	if !servercfg.IsPro {
 		node.IsInternetGateway = false
 	}
+	delete(node.Tags, models.TagID(fmt.Sprintf("%s.%s", node.Network, models.RemoteAccessTagName)))
 	node.IngressGatewayRange = ""
 	node.Metadata = ""
 	err = UpsertNode(&node)

+ 2 - 2
logic/tags.go

@@ -211,8 +211,8 @@ func CheckIDSyntax(id string) error {
 func CreateDefaultTags(netID models.NetworkID) {
 	// create tag for remote access gws in the network
 	tag := models.Tag{
-		ID:        models.TagID(fmt.Sprintf("%s.%s", netID.String(), "remote-access-gws")),
-		TagName:   "remote-access-gws",
+		ID:        models.TagID(fmt.Sprintf("%s.%s", netID.String(), models.RemoteAccessTagName)),
+		TagName:   models.RemoteAccessTagName,
 		Network:   netID,
 		CreatedBy: "auto",
 		CreatedAt: time.Now(),

+ 11 - 1
migrate/migrate.go

@@ -21,12 +21,12 @@ import (
 func Run() {
 	updateEnrollmentKeys()
 	assignSuperAdmin()
+	createDefaultTags()
 	removeOldUserGrps()
 	syncUsers()
 	updateHosts()
 	updateNodes()
 	updateAcls()
-	createDefaultTags()
 }
 
 func assignSuperAdmin() {
@@ -167,6 +167,16 @@ func updateNodes() {
 		return
 	}
 	for _, node := range nodes {
+		node := node
+		if node.IsIngressGateway {
+			tagID := models.TagID(fmt.Sprintf("%s.%s", node.Network,
+				models.RemoteAccessTagName))
+			if _, ok := node.Tags[tagID]; !ok {
+				node.Tags[tagID] = struct{}{}
+				logic.UpsertNode(&node)
+			}
+
+		}
 		if node.IsEgressGateway {
 			egressRanges, update := removeInterGw(node.EgressGatewayRanges)
 			if update {

+ 4 - 0
models/tags.go

@@ -7,6 +7,10 @@ import (
 
 type TagID string
 
+const (
+	RemoteAccessTagName = "remote-access-gws"
+)
+
 func (id TagID) String() string {
 	return string(id)
 }