2
0

nodes.go 790 B

12345678910111213141516171819202122232425262728293031
  1. package logic
  2. import (
  3. celogic "github.com/gravitl/netmaker/logic"
  4. "github.com/gravitl/netmaker/models"
  5. )
  6. // IsInternetGw - checks if node is acting as internet gw
  7. func IsInternetGw(node models.Node) bool {
  8. return node.IsInternetGateway
  9. }
  10. // SetInternetGw - sets the node as internet gw based on flag bool
  11. func SetInternetGw(node *models.Node, flag bool) {
  12. node.IsInternetGateway = flag
  13. }
  14. // GetNetworkIngresses - gets the gateways of a network
  15. func GetNetworkIngresses(network string) ([]models.Node, error) {
  16. var ingresses []models.Node
  17. netNodes, err := celogic.GetNetworkNodes(network)
  18. if err != nil {
  19. return []models.Node{}, err
  20. }
  21. for i := range netNodes {
  22. if netNodes[i].IsIngressGateway {
  23. ingresses = append(ingresses, netNodes[i])
  24. }
  25. }
  26. return ingresses, nil
  27. }