extpeers.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. "github.com/gravitl/netmaker/functions"
  6. "github.com/gravitl/netmaker/models"
  7. )
  8. // GetExtPeersList - gets the ext peers lists
  9. func GetExtPeersList(macaddress string, networkName string) ([]models.ExtPeersResponse, error) {
  10. var peers []models.ExtPeersResponse
  11. records, err := database.FetchRecords(database.EXT_CLIENT_TABLE_NAME)
  12. if err != nil {
  13. return peers, err
  14. }
  15. for _, value := range records {
  16. var peer models.ExtPeersResponse
  17. var extClient models.ExtClient
  18. err = json.Unmarshal([]byte(value), &peer)
  19. if err != nil {
  20. functions.PrintUserLog(models.NODE_SERVER_NAME, "failed to unmarshal peer", 2)
  21. continue
  22. }
  23. err = json.Unmarshal([]byte(value), &extClient)
  24. if err != nil {
  25. functions.PrintUserLog(models.NODE_SERVER_NAME, "failed to unmarshal ext client", 2)
  26. continue
  27. }
  28. if extClient.Network == networkName && extClient.IngressGatewayID == macaddress {
  29. peers = append(peers, peer)
  30. }
  31. }
  32. return peers, err
  33. }