lib/nfagent/payload.rb in nfagent-0.9.31 vs lib/nfagent/payload.rb in nfagent-0.9.50

- old
+ new

@@ -1,8 +1,8 @@ module NFAgent - class Payload < Struct.new(:data, :checksum, :filename, :line_count, :chunk_expired) + class Payload < Struct.new(:data, :checksum, :filename, :line_count, :chunk_expired, :key) def initialize yield self end def attempt @@ -21,20 +21,23 @@ def size (self.data || "").size + 1 end def to_hash - { + ret = { "payload" => self.data, "checksum" => self.checksum, "line_count" => self.line_count, "chunk_expired" => self.chunk_expired } + ret["key"] = self.key unless self.key.blank? + ret end def write_to_disk(directory) - File.open(File.join(directory, "#{self.checksum}-#{self.attempt}"), "w") do |file| + filename = [ self.checksum, self.attempt, self.key ].compact.join("-") + File.open(File.join(directory, filename), "w") do |file| file << self.data end end def lock @@ -46,18 +49,18 @@ def locked? filename && File.exists?(lockfile) end - def self.read_from_file(filename) + def self.read_from_file(filename, dir = Config.dump_dir) # Ensure the file is only relative filename = File.basename(filename) self.new do |payload| payload.filename = filename - payload.checksum, payload.attempt = filename.split("-") + payload.checksum, payload.attempt, payload.key = filename.split("-") payload.data = "" - ref = File.join(Config.dump_dir, filename) + ref = File.join(dir, filename) File.open(ref, "r") do |file| payload.data << file.read end end end @@ -66,10 +69,11 @@ FileUtils.rm_f(File.join(Config.dump_dir, self.filename)) if self.filename end def try_again_later # TODO: Move the file to a new name with a later timetamp - FileUtils.mv(File.join(Config.dump_dir, self.filename), File.join(Config.dump_dir, "#{self.checksum}-#{self.attempt}")) + new_filename = [ self.checksum, self.attempt, self.key ].compact.join("-") + FileUtils.mv(File.join(Config.dump_dir, self.filename), File.join(Config.dump_dir, new_filename)) end private def lockfile File.join(Config.dump_dir, "#{filename}.lock") if filename