helpers.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. }
  59. // DeleteKey - deletes a key
  60. func DeleteKey(network models.Network, i int) {
  61. network.AccessKeys = append(network.AccessKeys[:i],
  62. network.AccessKeys[i+1:]...)
  63. if networkData, err := json.Marshal(&network); err != nil {
  64. return
  65. } else {
  66. database.Insert(network.NetID, string(networkData), database.NETWORKS_TABLE_NAME)
  67. }
  68. }