extpeers.go 989 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. func GetExtPeersList(macaddress string, networkName string) ([]models.ExtPeersResponse, error) {
  9. var peers []models.ExtPeersResponse
  10. records, err := database.FetchRecords(database.EXT_CLIENT_TABLE_NAME)
  11. if err != nil {
  12. return peers, err
  13. }
  14. for _, value := range records {
  15. var peer models.ExtPeersResponse
  16. var extClient models.ExtClient
  17. err = json.Unmarshal([]byte(value), &peer)
  18. if err != nil {
  19. functions.PrintUserLog(models.NODE_SERVER_NAME, "failed to unmarshal peer", 2)
  20. continue
  21. }
  22. err = json.Unmarshal([]byte(value), &extClient)
  23. if err != nil {
  24. functions.PrintUserLog(models.NODE_SERVER_NAME, "failed to unmarshal ext client", 2)
  25. continue
  26. }
  27. if extClient.Network == networkName && extClient.IngressGatewayID == macaddress {
  28. peers = append(peers, peer)
  29. }
  30. }
  31. return peers, err
  32. }