afeiszli 3 lat temu
rodzic
commit
09c61c2bea
4 zmienionych plików z 31 dodań i 4 usunięć
  1. 11 1
      controllers/network.go
  2. 5 2
      mq/mq.go
  3. 14 1
      netclient/config/config.go
  4. 1 0
      netclient/functions/daemon.go

+ 11 - 1
controllers/network.go

@@ -11,6 +11,7 @@ import (
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
+	"github.com/gravitl/netmaker/mq"
 	"github.com/gravitl/netmaker/servercfg"
 )
 
@@ -125,6 +126,7 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
 
 	rangeupdate, localrangeupdate, holepunchupdate, err := logic.UpdateNetwork(&network, &newNetwork)
 	if err != nil {
+		logger.Log(1, err.Error())
 		returnErrorResponse(w, r, formatError(err, "badrequest"))
 		return
 	}
@@ -137,6 +139,7 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
 	if rangeupdate {
 		err = logic.UpdateNetworkNodeAddresses(network.NetID)
 		if err != nil {
+			logger.Log(1, err.Error())
 			returnErrorResponse(w, r, formatError(err, "internal"))
 			return
 		}
@@ -144,6 +147,7 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
 	if localrangeupdate {
 		err = logic.UpdateNetworkLocalAddresses(network.NetID)
 		if err != nil {
+			logger.Log(1, err.Error())
 			returnErrorResponse(w, r, formatError(err, "internal"))
 			return
 		}
@@ -151,6 +155,7 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
 	if holepunchupdate {
 		err = logic.UpdateNetworkHolePunching(network.NetID, newNetwork.DefaultUDPHolePunch)
 		if err != nil {
+			logger.Log(1, err.Error())
 			returnErrorResponse(w, r, formatError(err, "internal"))
 			return
 		}
@@ -162,7 +167,12 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
 			return
 		}
 		for _, node := range nodes {
-			runUpdates(&node, true)
+			if node.IsServer != "yes" {
+				err = mq.NodeUpdate(&node)
+				if err != nil {
+					logger.Log(1, err.Error())
+				}
+			}
 		}
 	}
 

+ 5 - 2
mq/mq.go

@@ -9,6 +9,7 @@ import (
 	"strings"
 	"time"
 
+	"github.com/davecgh/go-spew/spew"
 	mqtt "github.com/eclipse/paho.mqtt.golang"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
@@ -108,10 +109,8 @@ func PublishPeerUpdate(newNode *models.Node) error {
 	for _, node := range networkNodes {
 
 		if node.IsServer == "yes" || node.ID == newNode.ID {
-			log.Println("skipping update on " + node.Name + " : " + node.ID)
 			continue
 		}
-		log.Println("running update on " + node.Name + " : " + node.ID)
 		peerUpdate, err := logic.GetPeerUpdate(&node)
 		if err != nil {
 			logger.Log(1, "error getting peer update for node", node.ID, err.Error())
@@ -147,6 +146,10 @@ func NodeUpdate(node *models.Node) error {
 	if !servercfg.IsMessageQueueBackend() {
 		return nil
 	}
+	if node == nil {
+
+	}
+	spew.Dump(node)
 	logger.Log(3, "publishing node update to "+node.Name)
 	data, err := json.Marshal(node)
 	if err != nil {

+ 14 - 1
netclient/config/config.go

@@ -304,7 +304,20 @@ func ReadConfig(network string) (*ClientConfig, error) {
 		err = decoder.Decode(&cfg)
 		if err != nil {
 			fmt.Println("trouble decoding file")
-			return nil, err
+			if err = ReplaceWithBackup(network); err != nil {
+				return nil, err
+			}
+			f2, err := os.Open(file)
+			if err != nil {
+				return nil, err
+			}
+			defer f2.Close()
+			decoder2 := yaml.NewDecoder(f2)
+			err = decoder2.Decode(&cfg)
+			if err != nil {
+				fmt.Println("trouble decoding backup file")
+				return nil, err
+			}
 		}
 	}
 	return &cfg, err

+ 1 - 0
netclient/functions/daemon.go

@@ -118,6 +118,7 @@ func SetupMQTT(cfg *config.ClientConfig) mqtt.Client {
 // MessageQueue sets up Message Queue and subsribes/publishes updates to/from server
 func MessageQueue(ctx context.Context, network string) {
 	ncutils.Log("netclient go routine started for " + network)
+	keepalive.Store(network, time.Now())
 	var cfg config.ClientConfig
 	cfg.Network = network
 	ncutils.Log("pulling latest config for " + cfg.Network)