apm_white_list_v2.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 common.IsOpenFilter() {
  22. return false, nil
  23. }
  24. nodeInfo := r.nodeInfo.GetNodeInfo()
  25. if nodeInfo == nil {
  26. return false, fmt.Errorf("could not find node info")
  27. }
  28. whiteListReq := WhiteListReq{
  29. HostId: nodeInfo.HostID,
  30. AccountId: nodeInfo.AccountID,
  31. WhiteType: 2,
  32. }
  33. whiteData, err := r.connServer.WhiteListV2(whiteListReq)
  34. if err != nil {
  35. log.Errorf("report WhiteList info error is %v.", err)
  36. return false, err
  37. }
  38. //fmt.Println(r.whiteLastUpdatedTime)
  39. //fmt.Println(whiteData.LastUpdatedTime)
  40. // 不用更新
  41. if r.whiteLastUpdatedTime == whiteData.LastUpdatedTime {
  42. return false, nil
  43. }
  44. // 更新时间
  45. r.whiteLastUpdatedTime = whiteData.LastUpdatedTime
  46. r.setWhiteListV2(whiteData)
  47. return true, nil
  48. }