node.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cluster
  2. import (
  3. "net/http"
  4. "github.com/0xJacky/Nginx-UI/api"
  5. analytic2 "github.com/0xJacky/Nginx-UI/internal/analytic"
  6. "github.com/0xJacky/Nginx-UI/internal/upgrader"
  7. "github.com/0xJacky/Nginx-UI/internal/version"
  8. "github.com/dustin/go-humanize"
  9. "github.com/gin-gonic/gin"
  10. "github.com/shirou/gopsutil/v4/cpu"
  11. "github.com/shirou/gopsutil/v4/disk"
  12. )
  13. func GetCurrentNode(c *gin.Context) {
  14. if _, ok := c.Get("Secret"); !ok {
  15. c.JSON(http.StatusNotAcceptable, gin.H{
  16. "message": "node secret not exist",
  17. })
  18. return
  19. }
  20. runtimeInfo, err := upgrader.GetRuntimeInfo()
  21. if err != nil {
  22. api.ErrHandler(c, err)
  23. return
  24. }
  25. cpuInfo, _ := cpu.Info()
  26. memory, _ := analytic2.GetMemoryStat()
  27. ver := version.GetVersionInfo()
  28. diskUsage, _ := disk.Usage(".")
  29. nodeInfo := analytic2.NodeInfo{
  30. NodeRuntimeInfo: runtimeInfo,
  31. CPUNum: len(cpuInfo),
  32. MemoryTotal: memory.Total,
  33. DiskTotal: humanize.Bytes(diskUsage.Total),
  34. Version: ver.Version,
  35. }
  36. stat := analytic2.GetNodeStat()
  37. c.JSON(http.StatusOK, analytic2.Node{
  38. NodeInfo: nodeInfo,
  39. NodeStat: stat,
  40. })
  41. }