Class: TCellAgent::AppSensorRuleSet
- Inherits:
-
Object
- Object
- TCellAgent::AppSensorRuleSet
- Defined in:
- lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb
Instance Attribute Summary collapse
-
#patterns ⇒ Object
Returns the value of attribute patterns.
-
#safe_pattern ⇒ Object
Returns the value of attribute safe_pattern.
Instance Method Summary collapse
- #add_pattern_from_dict(rule_dict) ⇒ Object
- #check_violation(param_name, param_value, active_pattern_ids, v1_compatability_enabled) ⇒ Object
-
#initialize ⇒ AppSensorRuleSet
constructor
A new instance of AppSensorRuleSet.
- #set_safe_pattern_from_string(safe_pattern_str) ⇒ Object
Constructor Details
#initialize ⇒ AppSensorRuleSet
Returns a new instance of AppSensorRuleSet.
15 16 17 18 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 15 def initialize() @safe_pattern = nil @patterns = [] end |
Instance Attribute Details
#patterns ⇒ Object
Returns the value of attribute patterns.
13 14 15 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 13 def patterns @patterns end |
#safe_pattern ⇒ Object
Returns the value of attribute safe_pattern.
13 14 15 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 13 def safe_pattern @safe_pattern end |
Instance Method Details
#add_pattern_from_dict(rule_dict) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 40 def add_pattern_from_dict(rule_dict) return unless rule_dict pattern_id = rule_dict.fetch("id", nil) pattern = rule_dict.fetch("ruby", nil) if pattern == nil pattern = rule_dict.fetch("common", nil) elsif pattern == "disabled" return end return if pattern_id == nil or pattern == nil pattern_regex = Regexp.new(pattern, Regexp::MULTILINE | Regexp::IGNORECASE) enabled = rule_dict.fetch("enabled", true) rule_pattern = AppSensorRulePattern.new(pattern_id, pattern_regex, enabled) @patterns.push(rule_pattern) end |
#check_violation(param_name, param_value, active_pattern_ids, v1_compatability_enabled) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 20 def check_violation(param_name, param_value, active_pattern_ids, v1_compatability_enabled) return nil if param_value.nil? || (@safe_pattern && param_value.match(@safe_pattern)) @patterns.each do |pattern| next if pattern.nil? || pattern.enabled == false if v1_compatability_enabled || active_pattern_ids.fetch(pattern.pattern_id, false) pattern_result = param_value.match(pattern.pattern_regex) if pattern_result return {"param" => param_name, "value" => param_value, "pattern" => pattern.pattern_id} end end end return nil rescue return nil end |
#set_safe_pattern_from_string(safe_pattern_str) ⇒ Object
60 61 62 63 64 |
# File 'lib/tcell_agent/appsensor/rules/appsensor_rule_set.rb', line 60 def set_safe_pattern_from_string(safe_pattern_str) if safe_pattern_str != nil @safe_pattern = Regexp.new(safe_pattern_str) end end |