server_util.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package controller
  2. import (
  3. "github.com/gravitl/netmaker/logger"
  4. "github.com/gravitl/netmaker/logic"
  5. "github.com/gravitl/netmaker/models"
  6. "github.com/gravitl/netmaker/mq"
  7. "github.com/gravitl/netmaker/servercfg"
  8. )
  9. func runServerPeerUpdate(node *models.Node, ifaceDelta bool) error {
  10. err := logic.TimerCheckpoint()
  11. if err != nil {
  12. logger.Log(3, "error occurred on timer,", err.Error())
  13. }
  14. if servercfg.IsMessageQueueBackend() {
  15. if err := mq.PublishPeerUpdate(node); err != nil {
  16. logger.Log(0, "failed to inform peers of new node ", err.Error())
  17. }
  18. }
  19. if servercfg.IsClientMode() != "on" {
  20. return nil
  21. }
  22. var currentServerNodeID, getErr = logic.GetNetworkServerNodeID(node.Network)
  23. if err != nil {
  24. return getErr
  25. }
  26. var currentServerNode, currErr = logic.GetNodeByID(currentServerNodeID)
  27. if currErr != nil {
  28. return currErr
  29. }
  30. if err = logic.ServerUpdate(&currentServerNode, ifaceDelta); err != nil {
  31. logger.Log(1, "server node:", currentServerNode.ID, "failed update")
  32. return err
  33. }
  34. return nil
  35. }