| 1234567891011121314151617181920212223242526272829303132333435363738 | package relayimport (	"encoding/json"	"errors"	"github.com/gravitl/netmaker/database"	"github.com/gravitl/netmaker/functions"	"github.com/gravitl/netmaker/models")// GetNodeRelay - gets the relay node of a given networkfunc GetNodeRelay(network string, relayedNodeAddr string) (models.Node, error) {	collection, err := database.FetchRecords(database.NODES_TABLE_NAME)	var relay models.Node	if err != nil {		if database.IsEmptyRecord(err) {			return relay, nil		}		functions.PrintUserLog("", err.Error(), 2)		return relay, err	}	for _, value := range collection {		err := json.Unmarshal([]byte(value), &relay)		if err != nil {			functions.PrintUserLog("", err.Error(), 2)			continue		}		if relay.IsRelay == "yes" {			for _, addr := range relay.RelayAddrs {				if addr == relayedNodeAddr {					return relay, nil				}			}		}	}	return relay, errors.New("could not find relay for node " + relayedNodeAddr)}
 |