class PositionFile
Public Class Methods
new(pos_file_path)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 3 def initialize(pos_file_path) @pos_file_path = pos_file_path end
Public Instance Methods
processed?(violation)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 7 def processed?(violation) File.exist?(pos_file_name(violation)) && found?(violation) end
write(violation)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 11 def write(violation) File.open(pos_file_name(violation), 'a') do |f| f << violation_entry(violation) f << "\n" end end
Private Instance Methods
found?(violation)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 19 def found?(violation) return File.open(pos_file_name(violation)) { |f| f.find { |line| line.include? violation_entry(violation) } } end
pos_file_name(violation)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 28 def pos_file_name(violation) pos_file_date = DateTime.parse(violation['created']).strftime("%Y-%m-%d") @pos_file_path + "jfrog_siem_log_#{pos_file_date}.siem.pos" end
violation_entry(violation)
click to toggle source
# File lib/fluent/plugin/position_file.rb, line 23 def violation_entry(violation) created_date = DateTime.parse(violation['created']).strftime("%Y-%m-%dT%H:%M:%SZ") [created_date, violation['watch_name'], violation['issue_id']].join(',') end