mirror of
https://github.com/gravitl/netmaker.git
synced 2025-11-01 12:42:42 +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,
|
Node: *legacy,
|
||||||
Peers: peerUpdate.Peers,
|
Peers: peerUpdate.Peers,
|
||||||
ServerConfig: server,
|
ServerConfig: server,
|
||||||
PeerIDs: peerUpdate.PeerIDs,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if servercfg.Is_EE && nodeRequest {
|
if servercfg.Is_EE && nodeRequest {
|
||||||
@@ -637,19 +636,18 @@ func createNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
peerUpdate, err := logic.GetPeerUpdate(&data.Node, &data.Host)
|
peerUpdate, err := logic.GetPeerUpdateForHost(&data.Host)
|
||||||
if err != nil && !database.IsEmptyRecord(err) {
|
if err != nil && !database.IsEmptyRecord(err) {
|
||||||
logger.Log(0, r.Header.Get("user"),
|
logger.Log(0, r.Header.Get("user"),
|
||||||
fmt.Sprintf("error fetching wg peers config for node [ %s ]: %v", data.Node.ID.String(), err))
|
fmt.Sprintf("error fetching wg peers config for node [ %s ]: %v", data.Node.ID.String(), err))
|
||||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data.Node.Peers = peerUpdate.Peers
|
data.Host.Peers = peerUpdate.Peers
|
||||||
|
|
||||||
response := models.NodeJoinResponse{
|
response := models.NodeJoinResponse{
|
||||||
Node: data.Node,
|
Node: data.Node,
|
||||||
ServerConfig: server,
|
ServerConfig: server,
|
||||||
PeerIDs: peerUpdate.PeerIDs,
|
Host: data.Host,
|
||||||
}
|
}
|
||||||
logger.Log(1, r.Header.Get("user"), "created new node", data.Host.Name, "on network", networkName)
|
logger.Log(1, r.Header.Get("user"), "created new node", data.Host.Name, "on network", networkName)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ func (a *ApiNode) ConvertToServerNode(currentNode *Node) *Node {
|
|||||||
convertedNode.IsRelay = a.IsRelay
|
convertedNode.IsRelay = a.IsRelay
|
||||||
convertedNode.IsRelayed = a.IsRelayed
|
convertedNode.IsRelayed = a.IsRelayed
|
||||||
convertedNode.PendingDelete = a.PendingDelete
|
convertedNode.PendingDelete = a.PendingDelete
|
||||||
convertedNode.Peers = currentNode.Peers
|
//convertedNode.Peers = currentNode.Peers
|
||||||
convertedNode.Failover = a.Failover
|
convertedNode.Failover = a.Failover
|
||||||
convertedNode.IsEgressGateway = a.IsEgressGateway
|
convertedNode.IsEgressGateway = a.IsEgressGateway
|
||||||
convertedNode.IsIngressGateway = a.IsIngressGateway
|
convertedNode.IsIngressGateway = a.IsIngressGateway
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ type Host struct {
|
|||||||
IsK8S bool `json:"isk8s" yaml:"isk8s"`
|
IsK8S bool `json:"isk8s" yaml:"isk8s"`
|
||||||
IsStatic bool `json:"isstatic" yaml:"isstatic"`
|
IsStatic bool `json:"isstatic" yaml:"isstatic"`
|
||||||
IsDefault bool `json:"isdefault" yaml:"isdefault"`
|
IsDefault bool `json:"isdefault" yaml:"isdefault"`
|
||||||
|
Peers []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// FormatBool converts a boolean to a [yes|no] string
|
// FormatBool converts a boolean to a [yes|no] string
|
||||||
|
|||||||
@@ -76,7 +76,6 @@ type CommonNode struct {
|
|||||||
IsIngressGateway bool `json:"isingressgateway" yaml:"isingressgateway"`
|
IsIngressGateway bool `json:"isingressgateway" yaml:"isingressgateway"`
|
||||||
DNSOn bool `json:"dnson" yaml:"dnson"`
|
DNSOn bool `json:"dnson" yaml:"dnson"`
|
||||||
PersistentKeepalive time.Duration `json:"persistentkeepalive" yaml:"persistentkeepalive"`
|
PersistentKeepalive time.Duration `json:"persistentkeepalive" yaml:"persistentkeepalive"`
|
||||||
Peers []wgtypes.PeerConfig `json:"peers" yaml:"peers"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Node - a model of a network node
|
// Node - a model of a network node
|
||||||
|
|||||||
@@ -206,7 +206,6 @@ type NodeGet struct {
|
|||||||
Host Host `json:"host" yaml:"host"`
|
Host Host `json:"host" yaml:"host"`
|
||||||
Peers []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
|
Peers []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
|
||||||
ServerConfig ServerConfig `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
|
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
|
// NodeJoinResponse data returned to node in response to join
|
||||||
@@ -214,7 +213,6 @@ type NodeJoinResponse struct {
|
|||||||
Node Node `json:"node" bson:"node" yaml:"node"`
|
Node Node `json:"node" bson:"node" yaml:"node"`
|
||||||
Host Host `json:"host" yaml:"host"`
|
Host Host `json:"host" yaml:"host"`
|
||||||
ServerConfig ServerConfig `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
|
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
|
// 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
|
// PublishPeerUpdate --- publishes a peer update to all the peers of a node
|
||||||
func PublishExtPeerUpdate(node *models.Node) error {
|
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)
|
go PublishPeerUpdate(node.Network, false)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user