serverconf.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. "github.com/gravitl/netmaker/servercfg"
  6. )
  7. var (
  8. // NetworksLimit - dummy var for community
  9. NetworksLimit = 1000000000
  10. // UsersLimit - dummy var for community
  11. UsersLimit = 1000000000
  12. // MachinesLimit - dummy var for community
  13. MachinesLimit = 1000000000
  14. // IngressesLimit - dummy var for community
  15. IngressesLimit = 1000000000
  16. // EgressesLimit - dummy var for community
  17. EgressesLimit = 1000000000
  18. // FreeTier - specifies if free tier
  19. FreeTier = false
  20. )
  21. type serverData struct {
  22. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  23. }
  24. // StorePrivKey - stores server client WireGuard privatekey if needed
  25. func StorePrivKey(serverID string, privateKey string) error {
  26. var newData = serverData{}
  27. var err error
  28. var data []byte
  29. newData.PrivateKey = privateKey
  30. data, err = json.Marshal(&newData)
  31. if err != nil {
  32. return err
  33. }
  34. return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
  35. }
  36. // FetchPrivKey - fetches private key
  37. func FetchPrivKey(serverID string) (string, error) {
  38. var dbData string
  39. var err error
  40. var fetchedData = serverData{}
  41. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)
  42. if err != nil {
  43. return "", err
  44. }
  45. err = json.Unmarshal([]byte(dbData), &fetchedData)
  46. if err != nil {
  47. return "", err
  48. }
  49. return fetchedData.PrivateKey, nil
  50. }
  51. // RemovePrivKey - removes a private key
  52. func RemovePrivKey(serverID string) error {
  53. return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)
  54. }
  55. // FetchJWTSecret - fetches jwt secret from db
  56. func FetchJWTSecret() (string, error) {
  57. var dbData string
  58. var err error
  59. var fetchedData = serverData{}
  60. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")
  61. if err != nil {
  62. return "", err
  63. }
  64. err = json.Unmarshal([]byte(dbData), &fetchedData)
  65. if err != nil {
  66. return "", err
  67. }
  68. return fetchedData.PrivateKey, nil
  69. }
  70. // StoreJWTSecret - stores server jwt secret if needed
  71. func StoreJWTSecret(privateKey string) error {
  72. var newData = serverData{}
  73. var err error
  74. var data []byte
  75. newData.PrivateKey = privateKey
  76. data, err = json.Marshal(&newData)
  77. if err != nil {
  78. return err
  79. }
  80. return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
  81. }
  82. // SetFreeTierLimits - sets limits for free tier
  83. func SetFreeTierLimits() {
  84. FreeTier = true
  85. UsersLimit = servercfg.GetUserLimit()
  86. NetworksLimit = servercfg.GetNetworkLimit()
  87. MachinesLimit = servercfg.GetMachinesLimit()
  88. IngressesLimit = servercfg.GetIngressLimit()
  89. EgressesLimit = servercfg.GetEgressLimit()
  90. }