Class: NFAgent::Submitter
- Inherits:
-
Object
- Object
- NFAgent::Submitter
- Defined in:
- lib/nfagent/submitter.rb
Instance Attribute Summary collapse
-
#host ⇒ Object
Returns the value of attribute host.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(key) ⇒ Submitter
constructor
A new instance of Submitter.
- #submit(payload, checksum) ⇒ Object
- #write_failed_dump(payload, checksum) ⇒ Object
Constructor Details
#initialize(key) ⇒ Submitter
Returns a new instance of Submitter.
5 6 7 8 |
# File 'lib/nfagent/submitter.rb', line 5 def initialize(key) @service_host = "collector.service.netfox.com" @key = key end |
Instance Attribute Details
#host ⇒ Object
Returns the value of attribute host.
3 4 5 |
# File 'lib/nfagent/submitter.rb', line 3 def host @host end |
Class Method Details
.resubmit_failed_dumps ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/nfagent/submitter.rb', line 39 def self.resubmit_failed_dumps submitter = Submitter.new(Config.client_key) dump_dir = Dir.new(Config.dump_dir) dump_dir.entries.select { |e| not e =~ /^\./ }.each do |entry| Log.info "Resubmitting #{entry }" payload = "" ref = File.join(dump_dir.path, entry) File.open(ref, "r") do |file| payload << file.read end FileUtils.rm(ref) submitter.submit(payload, entry) end end |
.start_resubmission_thread ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/nfagent/submitter.rb', line 30 def self.start_resubmission_thread Thread.new do loop do self.resubmit_failed_dumps sleep 60 end end end |
Instance Method Details
#submit(payload, checksum) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/nfagent/submitter.rb', line 10 def submit(payload, checksum) puts "submitting paylod: #{payload}" proxy_class = Net::HTTP::Proxy(Config.proxy.host, Config.proxy.port, Config.proxy.user, Config.proxy.password) proxy_class.start(@service_host, 80) do |http| req = Net::HTTP::Post.new('/collector') req.set_form_data({ "payload" => payload, "checksum" => checksum, "key" => @key }) response, body = http.request(req) raise body unless Net::HTTPOK === response end rescue Log.error "Submission Failed: #{$!}" write_failed_dump(payload, checksum) end |
#write_failed_dump(payload, checksum) ⇒ Object
24 25 26 27 28 |
# File 'lib/nfagent/submitter.rb', line 24 def write_failed_dump(payload, checksum) File.open(File.join(Config.dump_dir, checksum), "w") do |file| file << payload end end |