mirror of
https://github.com/gravitl/netmaker.git
synced 2025-02-27 01:23:00 +08:00
publish node update when UI updates a node
This commit is contained in:
parent
9c6a26dcc5
commit
e164e6446f
2 changed files with 26 additions and 0 deletions
|
@ -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"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
@ -552,6 +553,9 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
|||
logger.Log(1, r.Header.Get("user"), "updated node", node.MacAddress, "on network", node.Network)
|
||||
w.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(w).Encode(newNode)
|
||||
if err := mq.NodeUpdate(&newNode); err != nil {
|
||||
logger.Log(1, "error publishing node update"+err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func deleteNode(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
22
mq/mq.go
22
mq/mq.go
|
@ -117,6 +117,28 @@ func GetID(topic string) (string, error) {
|
|||
return parts[count-1], nil
|
||||
}
|
||||
|
||||
// UpdateNode -- publishes a node update
|
||||
func NodeUpdate(node *models.Node) error {
|
||||
opts := mqtt.NewClientOptions()
|
||||
broker := servercfg.GetMessageQueueEndpoint()
|
||||
logger.Log(0, "broker: "+broker)
|
||||
opts.AddBroker(broker)
|
||||
client := mqtt.NewClient(opts)
|
||||
if token := client.Connect(); token.Wait() && token.Error() != nil {
|
||||
return token.Error()
|
||||
}
|
||||
data, err := json.Marshal(node)
|
||||
if err != nil {
|
||||
logger.Log(2, "error marshalling node update "+err.Error())
|
||||
return err
|
||||
}
|
||||
if token := client.Publish("/update/"+node.ID, 0, false, data); token.Wait() && token.Error() != nil {
|
||||
logger.Log(2, "error publishing peer update to peer "+node.ID+" "+token.Error().Error())
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewPeer -- publishes a peer update to all the peers of a newNode
|
||||
func NewPeer(node models.Node) error {
|
||||
opts := mqtt.NewClientOptions()
|
||||
|
|
Loading…
Reference in a new issue