Selaa lähdekoodia

ext client updates

Abhishek Kondur 2 vuotta sitten
vanhempi
commit
0341615516
2 muutettua tiedostoa jossa 18 lisäystä ja 20 poistoa
  1. 16 18
      controllers/ext_client.go
  2. 2 2
      mq/publishers.go

+ 16 - 18
controllers/ext_client.go

@@ -397,10 +397,7 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
 	logger.Log(0, r.Header.Get("user"), "created new ext client on network", networkName)
 	w.WriteHeader(http.StatusOK)
 	go func() {
-		go mq.BroadcastExtClient(host, &node)
-		// if err := mq.PublishPeerUpdate(); err != nil {
-		// 	logger.Log(1, "error setting ext peers on "+nodeid+": "+err.Error())
-		// }
+		mq.BroadcastExtClient(host, &node)
 		if err := mq.PublishExtCLientDNS(&extclient); err != nil {
 			logger.Log(1, "error publishing extclient dns", err.Error())
 		}
@@ -494,25 +491,26 @@ func updateExtClient(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 	logger.Log(0, r.Header.Get("user"), "updated ext client", update.ClientID)
-	if ingressNode, err := logic.GetNodeByID(newclient.IngressGatewayID); err == nil {
-		if ingressHost, err := logic.GetHost(ingressNode.HostID.String()); err == nil {
-			if replaceOldClient || !update.Enabled {
-				go mq.BroadcastDelExtClient(ingressHost, &ingressNode, oldExtClient)
-			}
-			if replaceOldClient || changedEnabled {
-				// broadcast update
-				go mq.BroadcastExtClient(ingressHost, &ingressNode)
-			}
-		}
-	}
+
 	w.WriteHeader(http.StatusOK)
 	json.NewEncoder(w).Encode(newclient)
 	if changedID {
-		go func() {
-			if err := mq.PublishExtClientDNSUpdate(currentClient, *newclient, networkName); err != nil {
+		go func(currentClient, newclient models.ExtClient) {
+			if ingressNode, err := logic.GetNodeByID(newclient.IngressGatewayID); err == nil {
+				if ingressHost, err := logic.GetHost(ingressNode.HostID.String()); err == nil {
+					if replaceOldClient || !update.Enabled {
+						mq.BroadcastDelExtClient(ingressHost, &ingressNode, currentClient)
+					}
+					if replaceOldClient || changedEnabled {
+						// broadcast update
+						mq.BroadcastExtClient(ingressHost, &ingressNode)
+					}
+				}
+			}
+			if err := mq.PublishExtClientDNSUpdate(currentClient, newclient, networkName); err != nil {
 				logger.Log(1, "error pubishing dns update for extcient update", err.Error())
 			}
-		}()
+		}(currentClient, *newclient)
 	}
 }
 

+ 2 - 2
mq/publishers.go

@@ -275,7 +275,7 @@ func BroadcastAddOrUpdatePeer(host *models.Host, node *models.Node, update bool)
 	return nil
 }
 
-// BroadcastExtClient - adds ext client to peers in the network
+// BroadcastExtClient - publishes msg to add/updates ext client in the network
 func BroadcastExtClient(ingressHost *models.Host, ingressNode *models.Node) error {
 
 	nodes, err := logic.GetNetworkNodes(ingressNode.Network)
@@ -290,7 +290,7 @@ func BroadcastExtClient(ingressHost *models.Host, ingressNode *models.Node) erro
 	return nil
 }
 
-// BroadcastDelExtClient - removes ext client from network
+// BroadcastDelExtClient - published msg to remove ext client from network
 func BroadcastDelExtClient(ingressHost *models.Host, ingressNode *models.Node, extclient models.ExtClient) error {
 	// TODO - send fw update
 	go BroadcastAddOrUpdatePeer(ingressHost, ingressNode, true)