util.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //go:build ee
  2. // +build ee
  3. package pro
  4. import (
  5. "encoding/base64"
  6. "github.com/gravitl/netmaker/logic"
  7. )
  8. // base64encode - base64 encode helper function
  9. func base64encode(input []byte) string {
  10. return base64.StdEncoding.EncodeToString(input)
  11. }
  12. // base64decode - base64 decode helper function
  13. func base64decode(input string) []byte {
  14. bytes, err := base64.StdEncoding.DecodeString(input)
  15. if err != nil {
  16. return nil
  17. }
  18. return bytes
  19. }
  20. func getCurrentServerUsage() (limits Usage) {
  21. limits.SetDefaults()
  22. hosts, hErr := logic.GetAllHosts()
  23. if hErr == nil {
  24. limits.Hosts = len(hosts)
  25. }
  26. clients, cErr := logic.GetAllExtClients()
  27. if cErr == nil {
  28. limits.Clients = len(clients)
  29. }
  30. users, err := logic.GetUsers()
  31. if err == nil {
  32. limits.Users = len(users)
  33. }
  34. networks, err := logic.GetNetworks()
  35. if err == nil {
  36. limits.Networks = len(networks)
  37. }
  38. // TODO this part bellow can be optimized to get nodes just once
  39. ingresses, err := logic.GetAllIngresses()
  40. if err == nil {
  41. limits.Ingresses = len(ingresses)
  42. }
  43. egresses, err := logic.GetAllEgresses()
  44. if err == nil {
  45. limits.Egresses = len(egresses)
  46. }
  47. relays, err := logic.GetRelays()
  48. if err == nil {
  49. limits.Relays = len(relays)
  50. }
  51. gateways, err := logic.GetInternetGateways()
  52. if err == nil {
  53. limits.InternetGateways = len(gateways)
  54. }
  55. return
  56. }