item.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package dataobj
  2. import (
  3. "crypto/md5"
  4. "fmt"
  5. "io"
  6. )
  7. //下发给agent的数据结构
  8. type DetectedItem struct {
  9. Sid int64 `json:"sid"`
  10. Method string `json:"method"`
  11. Domain string `json:"domain"`
  12. Target string `json:"target"`
  13. Keywords string `json:"keywords"`
  14. Timeout int `json:"timeout"`
  15. Creator string `json:"creator"`
  16. Data string `json:"data"`
  17. Endpoint string `json:"endpoint"`
  18. Tag string `json:"tag"`
  19. ExpectCode string `json:"expect_code"`
  20. Idc string `json:"idc"`
  21. Header string `json:"header"`
  22. PostData string `json:"post_data"`
  23. }
  24. //agent上报的数据结构
  25. type CheckResult struct {
  26. Sid int64 `json:"sid"`
  27. Domain string `json:"domain"`
  28. Target string `json:"target"`
  29. Creator string `json:"creator"`
  30. Endpoint string `json:"endpoint"`
  31. Tag string `json:"tag"`
  32. RespCode string `json:"resp_code"`
  33. RespTime int `json:"resp_time"`
  34. Status int64 `json:"status"`
  35. PushTime int64 `json:"push_time"`
  36. Step int64 `json:"step"`
  37. }
  38. type ItemStatus struct {
  39. Id int64 `json:"id"`
  40. Sid int64 `json:"sid"`
  41. Ip string `json:"ip"` //agent所在机器的ip
  42. RespTime int `json:"resp_time"`
  43. RespCode string `json:"resp_code"`
  44. PushTime int64 `json:"push_time"`
  45. Result int64 `json:"result"`
  46. }
  47. func (this *ItemStatus) PK() string {
  48. h := md5.New()
  49. io.WriteString(h, fmt.Sprintf("%s/%s", this.Sid, this.Ip))
  50. return fmt.Sprintf("%x", h.Sum(nil))
  51. }
  52. type SendResultReq struct {
  53. Ip string
  54. CheckResults []*CheckResult
  55. }
  56. type GetItemResponse struct {
  57. Message string
  58. Data []*DetectedItem
  59. }