Class: TCellAgent::PoliciesManager

Inherits:
Object
  • Object
show all
Defined in:
lib/tcell_agent/policies/policies_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(native_agent) ⇒ PoliciesManager

Returns a new instance of PoliciesManager.



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tcell_agent/policies/policies_manager.rb', line 32

def initialize(native_agent)
  @native_agent = native_agent
  @policies = {}

  enablements = {}
  RUST_POLICY_CLASSES.each do |policy_class|
    @policies[policy_class.api_identifier] = policy_class.new(
      @native_agent, enablements
    )
  end

  set_dataloss_policy({ 'dlp' => {} })
end

Instance Attribute Details

#policiesObject

Returns the value of attribute policies.



30
31
32
# File 'lib/tcell_agent/policies/policies_manager.rb', line 30

def policies
  @policies
end

Instance Method Details

#process_policy_json(enablements, policies_json) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/tcell_agent/policies/policies_manager.rb', line 57

def process_policy_json(enablements, policies_json)
  return if enablements.nil? || enablements == {}

  RUST_POLICY_CLASSES.each do |policy_class|
    @policies[policy_class.api_identifier] = policy_class.new(
      @native_agent, enablements
    )
  end

  set_dataloss_policy(policies_json)
end

#set_dataloss_policy(policies_json) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/tcell_agent/policies/policies_manager.rb', line 46

def set_dataloss_policy(policies_json)
  TCellAgent::Instrumentation.safe_block('Setting DLP policy') do
    dlp_api_identifier = TCellAgent::Policies::DataLossPolicy.api_identifier
    return unless policies_json.key?(dlp_api_identifier)

    @policies[dlp_api_identifier] = TCellAgent::Policies::DataLossPolicy.new(
      policies_json[dlp_api_identifier]
    )
  end
end