helpers.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package functions
  2. import (
  3. "encoding/json"
  4. "strings"
  5. "github.com/gravitl/netmaker/database"
  6. "github.com/gravitl/netmaker/models"
  7. )
  8. // NetworkExists - check if network exists
  9. func NetworkExists(name string) (bool, error) {
  10. var network string
  11. var err error
  12. if network, err = database.FetchRecord(database.NETWORKS_TABLE_NAME, name); err != nil {
  13. return false, err
  14. }
  15. return len(network) > 0, nil
  16. }
  17. // NameInDNSCharSet - name in dns char set
  18. func NameInDNSCharSet(name string) bool {
  19. charset := "abcdefghijklmnopqrstuvwxyz1234567890-."
  20. for _, char := range name {
  21. if !strings.Contains(charset, strings.ToLower(string(char))) {
  22. return false
  23. }
  24. }
  25. return true
  26. }
  27. // NameInNodeCharSet - name in node char set
  28. func NameInNodeCharSet(name string) bool {
  29. charset := "abcdefghijklmnopqrstuvwxyz1234567890-"
  30. for _, char := range name {
  31. if !strings.Contains(charset, strings.ToLower(string(char))) {
  32. return false
  33. }
  34. }
  35. return true
  36. }
  37. // RemoveDeletedNode - remove deleted node
  38. func RemoveDeletedNode(nodeid string) bool {
  39. return database.DeleteRecord(database.DELETED_NODES_TABLE_NAME, nodeid) == nil
  40. }
  41. // GetAllExtClients - get all ext clients
  42. func GetAllExtClients() ([]models.ExtClient, error) {
  43. var extclients []models.ExtClient
  44. collection, err := database.FetchRecords(database.EXT_CLIENT_TABLE_NAME)
  45. if err != nil {
  46. return extclients, err
  47. }
  48. for _, value := range collection {
  49. var extclient models.ExtClient
  50. err := json.Unmarshal([]byte(value), &extclient)
  51. if err != nil {
  52. return []models.ExtClient{}, err
  53. }
  54. // add node to our array
  55. extclients = append(extclients, extclient)
  56. }
  57. return extclients, nil
  58. }