status.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package client
  2. import (
  3. "github.com/cnlh/nps/lib/common"
  4. "github.com/cnlh/nps/lib/config"
  5. "github.com/cnlh/nps/lib/lg"
  6. "log"
  7. "os"
  8. "path/filepath"
  9. "strconv"
  10. "strings"
  11. )
  12. func GetTaskStatus(path string) {
  13. cnf, err := config.NewConfig(path)
  14. if err != nil {
  15. log.Fatalln(err)
  16. }
  17. c, err := NewConn(cnf.CommonConfig.Tp, cnf.CommonConfig.VKey, cnf.CommonConfig.Server, common.WORK_CONFIG, cnf.CommonConfig.ProxyUrl)
  18. if err != nil {
  19. log.Fatalln(err)
  20. }
  21. if _, err := c.Write([]byte(common.WORK_STATUS)); err != nil {
  22. log.Fatalln(err)
  23. }
  24. if f, err := common.ReadAllFromFile(filepath.Join(common.GetTmpPath(), "npc_vkey.txt")); err != nil {
  25. log.Fatalln(err)
  26. } else if _, err := c.Write([]byte(string(f))); err != nil {
  27. log.Fatalln(err)
  28. }
  29. if l, err := c.GetLen(); err != nil {
  30. log.Fatalln(err)
  31. } else if b, err := c.ReadLen(l); err != nil {
  32. lg.Fatalln(err)
  33. } else {
  34. arr := strings.Split(string(b), common.CONN_DATA_SEQ)
  35. for _, v := range cnf.Hosts {
  36. if common.InArr(arr, v.Remark) {
  37. log.Println(v.Remark, "ok")
  38. } else {
  39. log.Println(v.Remark, "not running")
  40. }
  41. }
  42. for _, v := range cnf.Tasks {
  43. ports := common.GetPorts(v.Ports)
  44. for _, vv := range ports {
  45. var remark string
  46. if len(ports) > 1 {
  47. remark = v.Remark + "_" + strconv.Itoa(vv)
  48. } else {
  49. remark = v.Remark
  50. }
  51. if common.InArr(arr, remark) {
  52. log.Println(remark, "ok")
  53. } else {
  54. log.Println(remark, "not running")
  55. }
  56. }
  57. }
  58. }
  59. os.Exit(0)
  60. }