mirror of
				https://github.com/gravitl/netmaker.git
				synced 2025-10-31 20:22:44 +08:00 
			
		
		
		
	move peers to host level
This commit is contained in:
		| @@ -455,7 +455,6 @@ func getNode(w http.ResponseWriter, r *http.Request) { | ||||
| 		Node:         *legacy, | ||||
| 		Peers:        peerUpdate.Peers, | ||||
| 		ServerConfig: server, | ||||
| 		PeerIDs:      peerUpdate.PeerIDs, | ||||
| 	} | ||||
|  | ||||
| 	if servercfg.Is_EE && nodeRequest { | ||||
| @@ -637,19 +636,18 @@ func createNode(w http.ResponseWriter, r *http.Request) { | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| 	peerUpdate, err := logic.GetPeerUpdate(&data.Node, &data.Host) | ||||
| 	peerUpdate, err := logic.GetPeerUpdateForHost(&data.Host) | ||||
| 	if err != nil && !database.IsEmptyRecord(err) { | ||||
| 		logger.Log(0, r.Header.Get("user"), | ||||
| 			fmt.Sprintf("error fetching wg peers config for node [ %s ]: %v", data.Node.ID.String(), err)) | ||||
| 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal")) | ||||
| 		return | ||||
| 	} | ||||
| 	data.Node.Peers = peerUpdate.Peers | ||||
|  | ||||
| 	data.Host.Peers = peerUpdate.Peers | ||||
| 	response := models.NodeJoinResponse{ | ||||
| 		Node:         data.Node, | ||||
| 		ServerConfig: server, | ||||
| 		PeerIDs:      peerUpdate.PeerIDs, | ||||
| 		Host:         data.Host, | ||||
| 	} | ||||
| 	logger.Log(1, r.Header.Get("user"), "created new node", data.Host.Name, "on network", networkName) | ||||
| 	w.WriteHeader(http.StatusOK) | ||||
|   | ||||
| @@ -59,7 +59,7 @@ func (a *ApiNode) ConvertToServerNode(currentNode *Node) *Node { | ||||
| 	convertedNode.IsRelay = a.IsRelay | ||||
| 	convertedNode.IsRelayed = a.IsRelayed | ||||
| 	convertedNode.PendingDelete = a.PendingDelete | ||||
| 	convertedNode.Peers = currentNode.Peers | ||||
| 	//convertedNode.Peers = currentNode.Peers | ||||
| 	convertedNode.Failover = a.Failover | ||||
| 	convertedNode.IsEgressGateway = a.IsEgressGateway | ||||
| 	convertedNode.IsIngressGateway = a.IsIngressGateway | ||||
|   | ||||
| @@ -41,6 +41,7 @@ type Host struct { | ||||
| 	IsK8S            bool                 `json:"isk8s" yaml:"isk8s"` | ||||
| 	IsStatic         bool                 `json:"isstatic" yaml:"isstatic"` | ||||
| 	IsDefault        bool                 `json:"isdefault" yaml:"isdefault"` | ||||
| 	Peers            []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"` | ||||
| } | ||||
|  | ||||
| // FormatBool converts a boolean to a [yes|no] string | ||||
|   | ||||
| @@ -76,7 +76,6 @@ type CommonNode struct { | ||||
| 	IsIngressGateway    bool          `json:"isingressgateway" yaml:"isingressgateway"` | ||||
| 	DNSOn               bool          `json:"dnson" yaml:"dnson"` | ||||
| 	PersistentKeepalive time.Duration `json:"persistentkeepalive" yaml:"persistentkeepalive"` | ||||
| 	Peers               []wgtypes.PeerConfig `json:"peers" yaml:"peers"` | ||||
| } | ||||
|  | ||||
| // Node - a model of a network node | ||||
|   | ||||
| @@ -206,7 +206,6 @@ type NodeGet struct { | ||||
| 	Host         Host                 `json:"host" yaml:"host"` | ||||
| 	Peers        []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"` | ||||
| 	ServerConfig ServerConfig         `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"` | ||||
| 	PeerIDs      PeerMap              `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"` | ||||
| } | ||||
|  | ||||
| // NodeJoinResponse data returned to node in response to join | ||||
| @@ -214,7 +213,6 @@ type NodeJoinResponse struct { | ||||
| 	Node         Node         `json:"node" bson:"node" yaml:"node"` | ||||
| 	Host         Host         `json:"host" yaml:"host"` | ||||
| 	ServerConfig ServerConfig `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"` | ||||
| 	PeerIDs      PeerMap      `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"` | ||||
| } | ||||
|  | ||||
| // ServerConfig - struct for dealing with the server information for a netclient | ||||
|   | ||||
| @@ -74,31 +74,7 @@ func PublishSingleHostUpdate(host *models.Host) error { | ||||
|  | ||||
| // PublishPeerUpdate --- publishes a peer update to all the peers of a node | ||||
| func PublishExtPeerUpdate(node *models.Node) error { | ||||
| 	host, err := logic.GetHost(node.HostID.String()) | ||||
| 	if err != nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	if !servercfg.IsMessageQueueBackend() { | ||||
| 		return nil | ||||
| 	} | ||||
| 	peerUpdate, err := logic.GetPeerUpdate(node, host) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	data, err := json.Marshal(&peerUpdate) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if host.ProxyEnabled { | ||||
| 		proxyUpdate, err := logic.GetPeersForProxy(node, false) | ||||
| 		if err == nil { | ||||
| 			peerUpdate.ProxyUpdate = proxyUpdate | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if err = publish(host, fmt.Sprintf("peers/%s/%s", node.Network, node.ID), data); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	go PublishPeerUpdate(node.Network, false) | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Abhishek Kondur
					Abhishek Kondur