server.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package functions
  2. import (
  3. "io"
  4. "log"
  5. "net/http"
  6. "github.com/gravitl/netmaker/cli/config"
  7. cfg "github.com/gravitl/netmaker/config"
  8. "github.com/gravitl/netmaker/models"
  9. )
  10. // GetLogs - fetch Netmaker server logs
  11. func GetLogs() string {
  12. _, ctx := config.GetCurrentContext()
  13. req, err := http.NewRequest(http.MethodGet, ctx.Endpoint+"/api/logs", nil)
  14. if err != nil {
  15. log.Fatal(err)
  16. }
  17. if ctx.MasterKey != "" {
  18. req.Header.Set("Authorization", "Bearer "+ctx.MasterKey)
  19. } else {
  20. req.Header.Set("Authorization", "Bearer "+getAuthToken(ctx, true))
  21. }
  22. res, err := http.DefaultClient.Do(req)
  23. if err != nil {
  24. log.Fatal(err)
  25. }
  26. bodyBytes, err := io.ReadAll(res.Body)
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30. return string(bodyBytes)
  31. }
  32. // GetServerInfo - fetch minimal server info
  33. func GetServerInfo() *models.ServerConfig {
  34. return request[models.ServerConfig](http.MethodGet, "/api/server/getserverinfo", nil)
  35. }
  36. // GetServerConfig - fetch entire server config including secrets
  37. func GetServerConfig() *cfg.ServerConfig {
  38. return request[cfg.ServerConfig](http.MethodGet, "/api/server/getconfig", nil)
  39. }
  40. // GetServerHealth - fetch server current health status
  41. func GetServerHealth() string {
  42. _, ctx := config.GetCurrentContext()
  43. req, err := http.NewRequest(http.MethodGet, ctx.Endpoint+"/api/server/health", nil)
  44. if err != nil {
  45. log.Fatal(err)
  46. }
  47. if ctx.MasterKey != "" {
  48. req.Header.Set("Authorization", "Bearer "+ctx.MasterKey)
  49. } else {
  50. req.Header.Set("Authorization", "Bearer "+getAuthToken(ctx, true))
  51. }
  52. res, err := http.DefaultClient.Do(req)
  53. if err != nil {
  54. log.Fatal(err)
  55. }
  56. bodyBytes, err := io.ReadAll(res.Body)
  57. if err != nil {
  58. log.Fatal(err)
  59. }
  60. return string(bodyBytes)
  61. }