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