| 12345678910111213141516171819202122232425262728293031 |
- package mq
- import (
- "encoding/json"
- "fmt"
- "github.com/gravitl/netmaker/logic"
- "github.com/gravitl/netmaker/models"
- "github.com/gravitl/netmaker/servercfg"
- "golang.org/x/exp/slog"
- )
- // PubPeerUpdate publishes a peer update to the client
- // relay is set to a newly created relay node or nil for other peer updates
- func PubPeerUpdate(client *models.Client) {
- peers := logic.GetPeerUpdate(&client.Host)
- p := models.PeerAction{
- Action: models.UpdatePeer,
- Peers: peers,
- }
- if len(p.Peers) == 0 {
- slog.Info("no peer update for host", "host", client.Host.Name)
- return
- }
- data, err := json.Marshal(p)
- if err != nil {
- slog.Error("marshal peer update", "error", err)
- return
- }
- publish(&client.Host, fmt.Sprintf("peer/host/%s/%s", client.Host.ID.String(), servercfg.GetServer()), data)
- }
|