node.go 1.0 KB

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