mongoconn.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package mongoconn
  2. import (
  3. "context"
  4. "log"
  5. "go.mongodb.org/mongo-driver/mongo"
  6. "go.mongodb.org/mongo-driver/mongo/options"
  7. "github.com/gravitl/netmaker/servercfg"
  8. )
  9. var Client *mongo.Client
  10. var NodeDB *mongo.Collection
  11. var NetworkDB *mongo.Collection
  12. var user string
  13. var pass string
  14. var host string
  15. var port string
  16. var opts string
  17. func setVars() {
  18. user = servercfg.GetMongoUser()
  19. pass = servercfg.GetMongoPass()
  20. host = servercfg.GetMongoHost()
  21. port = servercfg.GetMongoPort()
  22. opts = servercfg.GetMongoOpts()
  23. }
  24. func ConnectDatabase() {
  25. // Set client options
  26. setVars()
  27. clientOptions := options.Client().ApplyURI( "mongodb://" +
  28. user + ":" +
  29. pass + "@" +
  30. host + ":" +
  31. port +
  32. opts )
  33. // Connect to MongoDB
  34. log.Println("Connecting to MongoDB at " + host + ":" + port + "...")
  35. client, err := mongo.Connect(context.TODO(), clientOptions)
  36. Client = client
  37. if err != nil {
  38. log.Println("Error encountered connecting to MongoDB. Terminating.")
  39. log.Fatal(err)
  40. }
  41. // Check the connection
  42. err = Client.Ping(context.TODO(), nil)
  43. if err != nil {
  44. log.Println("Error encountered pinging MongoDB. Terminating.")
  45. log.Fatal(err)
  46. }
  47. NodeDB = Client.Database("netmaker").Collection("nodes")
  48. NetworkDB = Client.Database("netmaker").Collection("networks")
  49. log.Println("MongoDB Connected.")
  50. }
  51. // ErrorResponse : This is error model.
  52. type ErrorResponse struct {
  53. StatusCode int `json:"status"`
  54. ErrorMessage string `json:"message"`
  55. }