apm_white_list_v2.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package containers
  2. import (
  3. "fmt"
  4. "github.com/coroot/coroot-node-agent/common"
  5. . "github.com/coroot/coroot-node-agent/utils/modelse"
  6. log "github.com/sirupsen/logrus"
  7. )
  8. func (r *Registry) getWhiteListAll() []WhiteSettingInfo {
  9. return r.whiteListRules["all"]
  10. }
  11. func (r *Registry) setWhiteListV2(whiteData WhiteDataV2) {
  12. whiteListMap := make(WhiteListMap)
  13. code := "all"
  14. for _, setting := range whiteData.SettingList {
  15. setting.Filters = setting.ProcessKey
  16. whiteListMap[code] = append(whiteListMap[code], setting)
  17. }
  18. r.whiteListRules = whiteListMap
  19. }
  20. func (r *Registry) pullWhiteListV2() (bool, error) {
  21. if r.isFusing {
  22. return false, nil
  23. }
  24. if common.IsOpenFilter() {
  25. return false, nil
  26. }
  27. nodeInfo := r.nodeInfo.GetNodeInfo()
  28. if nodeInfo == nil {
  29. return false, fmt.Errorf("could not find node info")
  30. }
  31. whiteListReq := WhiteListReq{
  32. HostId: nodeInfo.HostID,
  33. AccountId: nodeInfo.AccountID,
  34. WhiteType: 2,
  35. }
  36. whiteData, err := r.connServer.WhiteListV2(whiteListReq)
  37. if err != nil {
  38. log.Errorf("report WhiteList info error is %v.", err)
  39. return false, err
  40. }
  41. //fmt.Println(r.whiteLastUpdatedTime)
  42. //fmt.Println(whiteData.LastUpdatedTime)
  43. // 后端切换主机与全局规则时,时间不会变化
  44. // 不用更新
  45. //if r.whiteLastUpdatedTime == whiteData.LastUpdatedTime {
  46. // return false, nil
  47. //}
  48. //
  49. //// 更新时间
  50. r.whiteLastUpdatedTime = whiteData.LastUpdatedTime
  51. r.setWhiteListV2(whiteData)
  52. return true, nil
  53. }